【问题标题】:x509 and digital signaturex509 和数字签名
【发布时间】:2010-10-07 14:03:03
【问题描述】:

我正在重写一个应用程序,以便我们可以停止使用 Microsoft.Web.Services2.dll 中的旧 Microsoft.Web.Services2.Security.X509 并开始使用 System.Security.Cryptography.X509Certificates。

不过,有一种方法我想不通:

bool Microsoft.Web.Services2.Security.X509.X509Certificate.SupportsDigitalSignature()

我在

中找不到它的等价物

System.Security.Cryptography.X509Certificates.X509Certificate2.

我是否还需要测试证书是否支持数字签名?我不明白它怎么不能......

【问题讨论】:

    标签: c# .net security x509certificate


    【解决方案1】:

    首先,证书必须有一个私钥才能用于签名。使用X509Certificate2.HasPrivateKey 属性来检查这一点。

    使用X509Certificate2.Extensions 属性访问Key Usage extension。关键用途之一是数字签名。这就是你要找的。​​p>

    【讨论】:

    • 再想一想,我在服务器端只有客户端证书的公钥部分,所以我只能检查 KeyUsage 扩展。
    【解决方案2】:

    相信你会想用this
    Microsoft.Web.Services3.Security.Tokens

    【讨论】:

    • 感谢您的回答,但我认为 Web 服务增强不是我所需要的。它在 MSDN 上被描述为“WSE 是将高级 Web 服务协议应用于 SOAP 消息的引擎。”(msdn.microsoft.com/en-us/library/aa529139.aspx) 这不是我将使用证书的目的。 (我相信使用 Microsoft.Web.Services2 是必要的,因为早期 .Net 版本缺乏证书支持。)
    猜你喜欢
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2010-12-28
    • 2013-06-28
    • 2011-02-13
    • 1970-01-01
    • 2015-06-29
    相关资源
    最近更新 更多