我需要获取BinarySecurityToken来向Soap WebApi进行身份验证,我知道BinarySecurityToken是用Base64编码的证书内容。当我在SoapUI中测试api时,二进制的sec令牌是从我的证书的jks文件中生成的,一切正常。问题是,当我需要连接到C#格式的应用程序接口时,我使用p12证书,并获得证书的编码base64内容,就像在jks文件中一样,但值不同,来自p12的BinarySecurityToken不能与Soap api一起工作。
结论: jks生成的BinarySecToken与p12生成的不同。
有没有办法生成和jks文件一样的BinarySecToken?有没有办法在c#中处理jks文件?
下面是我获取BinarySecToken的方法:
X509Certificate2 cert = new X509Certificate2(certPath,"pass");
var content = cert.RawData;
var base64content = Convert.ToBase64String(content);发布于 2018-07-04 18:49:22
.jks文件中的BinarySecurityToken是原始内容数据,但有一个区别。jks文件中的Token一开始包含文件大小,.p12生成的token数据与jks相同,但没有文件大小。在我的解决方案中,我用其他方法解决它。当您需要从文件中获取BinarySecurityToken作为原始数据时,我认为没有解决方案。有其他api机制可以为您解决此问题。当您想从文件中获取原始数据形式的token时,您做错了一些事情,这肯定不会解决您的问题。
https://stackoverflow.com/questions/48438204
复制相似问题