我需要获取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);
答案 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机制可以为您解决。当您想从文件中获取令牌作为原始数据时,您做错了事,并且肯定不会解决您的问题。