繁体   English   中英

如何将注册表证书添加到HttpWebRequest?

[英]How to add registry certificate to HttpWebRequest?

如果这是一个重复的问题,我事先表示歉意。 我是HttpWebRequest的“行话”新手,而我的Google搜索却毫无结果。

前一段时间,我写了一个使用HttpWebRequest的登录控制器。 当我在家运行它时,它工作正常。 我在公司防火墙后面尝试了相同的登录控制器,并且期望客户端身份验证证书能够通过。 我在线阅读该证书位于我的桌面系统注册表中。 果然,我可以打开IE和Internet选项->内容->证书,我可以在对话框窗口中看到IE用来执行我想用我的登录控制器完成的相同操作的客户端证书。

有人可以提供一个C#代码段,显示一种将客户端证书从注册表添加到我的HttpWebRequest的方法吗?

例如,

var request = (HttpWebRequest) WebRequest.Create("https://www.someplace.com/Login");
                request.Credentials = CredentialCache.DefaultCredentials;
                request.ClientCertificates.Add(); //<---- ? how to add registry certs?
                request.KeepAlive = true;

等等

该MS知识库文章涵盖了您所需要的内容- 如何使用HttpWebRequest和HttpWebResponse类发送客户端证书

如本文所述,您有两个选择可以打开:

  1. 使用X509Certificate类从.cer文件读取证书。
  2. 使用CryptoAPI调用直接从证书存储中提取证书信息。

第二种选择是麻烦,需要提高信任度才能从证书中提取。 商店。 因此,您将尽可能选择选项1。 像这样:

X509Certificate Cert = X509Certificate.CreateFromCertFile("C:\\mycert.cer");
HttpWebRequest Request = (HttpWebRequest)WebRequest
                         .Create("https://YourServer/sample.asp");
Request.ClientCertificates.Add(Cert);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM