gpt4 book ai didi

c# - 无法从 X.509 存储获取当前用户证书

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:27 24 4
gpt4 key购买 nike

我正在开发 Asp.net 应用程序,我想在其中从 x509Store 读取当前用户证书...它在我的本地计算机上工作正常..当我在 IIS 上部署应用程序时...我无法选择当前用户我将用于应用程序身份验证的证书...

这是为本地系统正常工作的代码..

public  X509Certificate2 selectCert(StoreName store, StoreLocation Location ,  string windowTitle, string windowMsg)
{

X509Certificate2 certSelected = null;
X509Store x509Store = new X509Store(store);
x509Store.Open(OpenFlags.ReadWrite);

X509Certificate2Collection col = x509Store.Certificates;
X509Certificate2Collection sel = X509Certificate2UI.SelectFromCollection(col, windowTitle, windowMsg, X509SelectionFlag.SingleSelection);

if (sel.Count > 0)
{
X509Certificate2Enumerator en = sel.GetEnumerator();
en.MoveNext();
certSelected = en.Current;
}

x509Store.Close();

return certSelected;
}

这里 x509Store.Certificates 返回当前用户证书的一些集合..但是当我在 ISS 中运行部署的应用程序时。 x509Store.Certificates 在服务器上提供空集合...对于当前用户&我已经检查了我的个人商店(通过 certmgr.mmc)并且我确定我有证书...关键问题请解决...我无法理解.. 发生了什么......

谢谢

最佳答案

您的 IIS 应用程序必须在 IIS 中的 ASP .net 内置帐户下运行,该帐户无权访问证书存储区。

一种解决方法是将用户更改为其他具有权限的用户,但这会导致安全问题。

更好但更复杂的方法是让服务以提升的权限执行,它接受来自本地机器的传入 TCP/UDP/管道连接,检索证书并将它们传递出去,这样您就可以安全地从您的服务调用该服务asp.net 页面没有给它提升的权限

关于c# - 无法从 X.509 存储获取当前用户证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23276920/

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