Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF中的证书验证_C#_Wcf_Certificate_X509 - Fatal编程技术网

C# WCF中的证书验证

C# WCF中的证书验证,c#,wcf,certificate,x509,C#,Wcf,Certificate,X509,我必须检查一个特定的证书。不幸的是,我不知道如何才能做到这一点。我要验证的证书由我自己的ca签名。我需要检查整个证书链。验证应在C#内完成 亲切问候,, Michael如果您想做所有事情,包括验证代码中的链,那么您需要: 为了自己验证链,您应该看一看,为了了解如何实现这样的链验证,请看一下验证。。。基本上,您可以使用Find方法来搜索父对象,以此类推。。。自定义验证的验证标准由您决定(有效签名,未过期…) MSDN上的一些参考链接: 如果您想做所有事情,包括验证代码中的链,那么您需要:

我必须检查一个特定的证书。不幸的是,我不知道如何才能做到这一点。我要验证的证书由我自己的ca签名。我需要检查整个证书链。验证应在C#内完成

亲切问候,,
Michael

如果您想做所有事情,包括验证代码中的链,那么您需要:

为了自己验证链,您应该看一看,为了了解如何实现这样的链验证,请看一下
验证
。。。基本上,您可以使用
Find
方法来搜索父对象,以此类推。。。自定义验证的验证标准由您决定(有效签名,未过期…)

MSDN上的一些参考链接:


如果您想做所有事情,包括验证代码中的链,那么您需要:

为了自己验证链,您应该看一看,为了了解如何实现这样的链验证,请看一下
验证
。。。基本上,您可以使用
Find
方法来搜索父对象,以此类推。。。自定义验证的验证标准由您决定(有效签名,未过期…)

MSDN上的一些参考链接:


您没有将证书和根证书安装到证书存储中的任何原因?根证书已安装。但是我需要根据一个特定的证书来验证这个证书。未对整个店铺进行验证。这是一个非常敏感的区域,自我实施整个检查过程中的一些错误/处理不当可能会导致严重的安全问题。。。IMHO“unwished”不足以作为保证更高风险的理由…我在wcf的上下文中运行它,这意味着认证已经通过框架提供。现在我必须实现身份验证。我正在收到WCF的验证回调。不幸的是,我不知道如何检查提供的证书是否由我自己的CA签名。。。我不想重新实现现有的机制,我想使用它们。我正在使用客户端证书身份验证,以与wcf的传输安全性相抗衡。不幸的是,每个从有效CA签名的客户端都能够连接到我的服务。这种行为的原因是,wcf正在检查整个受信任的CA存储区是否有任何有效的CA对提供的证书进行签名。我的应用程序需要将访问权限仅限于由我自己的ca签名的客户端。这就是我希望引入自定义验证的原因。您不将证书和根证书安装到证书存储中的任何原因?根证书已安装。但是我需要根据一个特定的证书来验证这个证书。未对整个店铺进行验证。这是一个非常敏感的区域,自我实施整个检查过程中的一些错误/处理不当可能会导致严重的安全问题。。。IMHO“unwished”不足以作为保证更高风险的理由…我在wcf的上下文中运行它,这意味着认证已经通过框架提供。现在我必须实现身份验证。我正在收到WCF的验证回调。不幸的是,我不知道如何检查提供的证书是否由我自己的CA签名。。。我不想重新实现现有的机制,我想使用它们。我正在使用客户端证书身份验证,以与wcf的传输安全性相抗衡。不幸的是,每个从有效CA签名的客户端都能够连接到我的服务。这种行为的原因是,wcf正在检查整个受信任的CA存储区是否有任何有效的CA对提供的证书进行签名。我的应用程序只需要限制那些由我自己的ca签名的客户端的访问。这就是我想引入自定义验证的原因。
Client.ServiceCertificate.Authentication.CertificateValidationMode =
              X509CertificateValidationMode.Custom;
Client.ServiceCertificate.Authentication.CustomCertificateValidator =
    new MyCertificateValidator();