当我拥有证书身份时,如何在代码中创建端点地址?

时间:2012-06-28 06:57:05

标签: wcf configuration wcf-security x509certificate x509certificate2

我的WCF客户端配置中包含以下内容:

...
<identity>
   <certificate encodedValue="encoded data" />
</identity>
...

我不想使用App.Config文件,所以我试图在代码中重新创建它,但是我无法这样做。我已经尝试从base 64转换此字符串并将其作为X509Certificate2类的原始数据传递,如果我这样做,我会收到CryptographicException:“找不到请求的对象”。

我认为这可能是因为格式是DER,但我不确定是否是这种情况,如果是,我不知道如何将其转换为DER格式。

有谁知道如何用代码加载它?

1 个答案:

答案 0 :(得分:2)

在创建EndpointAddress时使用和EndpointIdentity尝试这样的事情:

X509Certificate2 certificate = X509Certificate2.CreateFromCertFile("r certificate file goes here") as X509Certificate2;
EndpointAddress endpointAddress = new EndpointAddress(new URI("Your service URI goes here"), EndpointIdentity.CreateX509CertificateIdentity(certificate));

上述示例的来源是:http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/c343c266-850e-4eec-9e6f-a42b9659527c/