【问题标题】:attach a client certificate through code when connecting to an OData service连接到 OData 服务时通过代码附加客户端证书
【发布时间】:2014-04-06 12:57:32
【问题描述】:

我正在尝试查询托管在 IIS7 上的 odata web.api。该站点需要客户证书。如何将证书附加到查询中?使用 web.api 2,框架 4.5,mvc5

string certPath = @"E:\ClientCertificate.cer";

Uri uri = new Uri("https://server/odata/"); 
var container = new CourseService.Container(uri);
container.ClientCertificate = new X509Certificate(certPath);

通过阅读以下内容实现了对容器类的扩展: http://bartwullems.blogspot.co.uk/2013/03/odata-attach-client-certificate-through.htm

【问题讨论】:

  • 在调试容器的客户端证书为空,它似乎没有附加...
  • 哈姆雷特,感谢编辑...

标签: c# ssl client ssl-certificate odata


【解决方案1】:

您可以自己在 SendRequest2 事件中附加证书来请求:

    context.SendingRequest2 += (sender, eventArgs) =>
        {
            // We can safely cast RequestMessage to HttpWebRequestMessage if this is not in batch.
            if (!eventArgs.IsBatchPart)
            {
                ((HttpWebRequestMessage)eventArgs.RequestMessage).HttpWebRequest.ClientCertificates.Add(theCertificate);
            }
        };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多