![](/img/trans.png)
[英]How to detect Client Certificate Authentication request in 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类发送客户端证书 。
如本文所述,您有两个选择可以打开:
X509Certificate
类从.cer文件读取证书。 第二种选择是麻烦,需要提高信任度才能从证书中提取。 商店。 因此,您将尽可能选择选项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.