来自p12的二进制安全性令牌与来自jks的二进制安全性令牌

时间:2018-01-25 08:05:26

标签: c# .net soap x509certificate jks

我需要获取BinarySecurityToken以对Soap WebApi进行身份验证,我知道BinarySecurityToken是在Base64中编码的证书内容。当我在SoapUI中测试api时,二进制秒令牌是从我的证书中的jks文件生成的,一切正常。问题是当我需要连接到api格式C#然后我使用p12证书并获取jks文件中的编码base64内容时,但值不同,p12的BinarySecurityToken不能与Soap api一起使用。

结论:从jks生成的BinarySecToken与从p12生成的不同。

有没有办法生成BinarySecToken和jks文件一样? 有没有办法在c#中使用jks文件?

这就是我获取BinarySecToken的方式:

           X509Certificate2 cert = new X509Certificate2(certPath,"pass");

           var content = cert.RawData;

           var base64content = Convert.ToBase64String(content);

1 个答案:

答案 0 :(得分:0)

var isIE = !!document.documentMode; if (isIE) { $("body").on("keydown", "input[type='text']", function (e) { // Ensure 'value' binding is fired on enter in IE if ((e.keyCode || e.which) === 13) { $(this).blur(); } }); } 文件中的BinarySecurityToken是原始内容数据,但有一个区别。 jks文件中的令牌开头包含文件大小,从.jks生成的令牌数据与.p12相同,但没有文件大小。在我的解决方案中,我以其他方式解决它。我认为当您需要从文件中获取BinarySecurityToken作为原始数据时,没有任何解决方案。还有其他api机制可以为您解决。当您想从文件中获取令牌作为原始数据时,您做错了事,并且肯定不会解决您的问题。