IISExpress AppPool 身份验证

Posted

技术标签:

【中文标题】IISExpress AppPool 身份验证【英文标题】:IISExpress AppPool identity verification 【发布时间】:2013-11-08 21:48:15 【问题描述】:

我需要以特定身份运行 IISExpress。看完这篇 how to run iisexpress app pool under a different identity 之后,我在我的 \Documents\IISExpress\config\applicationhost.config 文件中更改了 processModel 的用户名和密码属性。

我想验证我的网络应用程序中的更改。有没有办法验证?

最终,我所追求的是我的安全性使用 PrincipalPermission 属性可以正常工作。我相信此属性的 Name 属性与运行 IISExpress 和我的应用程序的用户相匹配。

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

IISExpress 以当前用户身份运行,更改 ProcessModel 用户名/密码无济于事。以特定身份运行的唯一方法是使用“runas”启动 iisexpress.exe。

【讨论】:

既然 IISExpress 在 VS 中运行应用程序时会自动启动,有没有办法指定“runas”? 只需使用 runas 启动 VS (devenv.exe)。 感谢您的回复!我发布了这个问题:***.com/questions/28820491/… 并且一直在努力解决问题!【参考方案2】:

我可能来不及提供帮助,但您是否尝试过将项目更改为使用本地 IIS 而不是 IIS Express 运行?

这是我的做法(您可以从 Visual Studio 开始,但我觉得这更直接):

以管理员权限启动 IIS 管理器(重要的是您有权使用 localhost) 添加一个新的应用程序池,该应用程序池使用您的数据库所需的身份(可能是您的 Windows 帐户)运行 在 iis 上创建一个新的应用程序 将其指向您的项目文件夹 将其分配给您刚刚创建的应用程序池 在 Visual Studio 中打开项目的属性(在解决方案资源管理器中选择项目,按 Alt-Enter 或使用上下文菜单)。在 Web 部分中,选择本地 IIS 而不是 IIS Express。无需创建虚拟目录(您已经这样做了)。

现在您的应用可以打开数据库了。作为额外的奖励,您的项目始终可以运行。无需从 Visual Studio 启动。

【讨论】:

以上是关于IISExpress AppPool 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

IIS Express - 临时模拟经过身份验证的用户

IIS7 中的身份池

在 VS2013 中调试时的身份验证问题 - iis express

IIS 7:身份“IIS APPPOOL\DefaultAppPool”没有足够的权限来访问临时目录

SignalR 不适用于 Windows 集成身份验证

IIS Express Windows 身份验证