gpt4 book ai didi

c# - 在 .Net Compact Framework 中使用 X509 证书进行客户端身份验证 HTTPRequest

转载 作者:太空狗 更新时间:2023-10-29 21:54:46 27 4
gpt4 key购买 nike

我在 Windows Mobile 6 中工作,并希望在与 Apache 网络服务器对话时进行客户端身份验证。我在本地证书存储中有一个证书,它应该相当简单:

X509Store myStore = new X509Store("MY", StoreLocation.CurrentUser);
myStore.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certificates = myStore.Certificates;
X509Certificate2 clientcertificate;
foreach (X509Certificate 2certificate in certificates) {
clientcertificate = certificate; //omitted code to validate certificate
}
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(webPage);
req.AllowWriteStreamBuffering = true;
req.AllowAutoRedirect = false;
req.Method = "POST";
req.ContentType = "text/xml";
req.Accept = "text/xml";
req.ClientCertificates.Add(clientcertificate);
Stream stream = req.GetRequestStream();
stream.Write(buffer, 0, buffer.Length);
stream.Close();

只要删除“req.ClientCertificates.Add(clientcertificate)”行,此代码段就可以工作。

插入后,我收到“无法为 SSL/TLS 建立安全通道”。令人抓狂的是,当我在常规 .Net Framework 中使用这段代码时,它完美地传输了证书。

有谁知道这在 Compact Framework 中是否可行?如果我无法提供用于客户端身份验证的 X509Certificate,我应该采取哪些其他方法来确保身份验证正确(我应该可以访问 CAPI 或其他 Microsoft 加密模块)

谢谢。

最佳答案

可能是您的 Apache 服务器不支持安全连接。

例如,我在托管域上拥有一些网站,这些网站的费用很少或根本没有。我一直使用这些网站来测试代码。

但是,要获得 SSL 功能,我必须每月支付大约 50 美元。所以,我无法在我的网站上测试它们。

测试:如果 Apache 服务器支持 SSL,您应该能够将 URL 替换为等效的 SSL:http://www.stackoverflow.comhttps://www.stackoverflow.com

关于c# - 在 .Net Compact Framework 中使用 X509 证书进行客户端身份验证 HTTPRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828844/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com