【问题标题】:IIS has no access to Certificate StoreIIS 无权访问证书存储
【发布时间】:2018-08-16 23:48:44
【问题描述】:

我对 IIS 或 Visual C# 不是很熟悉,

但最近我想在一个 web 服务中的 .dll 文件中包装一个服务控制器,我们可以在我们的云应用程序中使用它。

我写了一个简短的脚本,用 C# 将信息发布到 Http WebAPi 上,并将依赖程序集的函数包装在其中。

在我的计算机中,我可以本地访问证书存储。即使我在 localhost:5000 中运行 app.exe 或从 IIS Express 运行,它也可以作为 Web 应用程序看到证书密钥库。

当我从 IIS 10 或服务器公共 ip 运行它时,它无法识别证书。

图像位于服务器内的同一本地主机中。从左侧的 webbapp.exe 和右侧的 IIS10 在 IIS Express 上运行。

根据与本地 IIS Express 的比较,知道 IIS 出了什么问题吗?我可以做些什么来修复它或者我应该找到任何其他解决方法。

【问题讨论】:

  • blog.lextudio.com/… 请记住,在这种情况下,使用的用户帐户和代码尝试访问的存储完全不同。
  • 感谢您的链接。当然会有权限差异,但这些差异很大。
  • @LexLi 你是对的,当我尝试在本地打印商店中的证书时,我在 IIS 运行时获取证书列表为空。

标签: .net iis x509certificate iis-express


【解决方案1】:

正如@LexLi 建议的那样,IIS 仅限于对 KeyStore 的访问。配置正在运行,因此 dll 试图访问

X509Store(StoreName.My, StoreLocation.CurrentUser);

问题在于,出于安全目的,ISS 无权访问该用户。 在 i 中进行一些调整后更改为:

X509Store(StoreName.Root, StoreLocation.LocalMachine);

并且在我正在运行的应用程序池的“高级设置”下的 IIS 10“应用程序池”中。我做了以下

Identity: LocalSystem
Load User Profile: True

现在似乎一切正常。

【讨论】:

    猜你喜欢
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 2016-03-13
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多