39

有没有办法以不同于当前登录用户的身份运行 iisexpress 应用程序池?

我目前正在使用“runas”命令解决这个问题,但我想知道是否有可以使用的 iisexpress 内置功能。

4

5 回答 5

35

看起来这应该是可能的。在您的 IIS Express 站点的 applicationhost.config 文件中,在下面<processModel/>定义了一个元素<applicationPoolDefaults><applicationPools>

<processModel>元素具有userName和的属性password

来自MSDN

指定 ASP.NET 将使用不同于默认进程标识的 Windows 标识的 Windows 标识运行工作进程。默认情况下,此属性设置为机器,并且进程在安装 ASP.NET 时自动创建的名为 ASPNET 的用户帐户下运行。ASPNET 帐户的密码是在安装时以加密方式生成的。如果此属性和密码属性中提供了有效凭据,则使用给定帐户运行该过程。

这应该允许您在与登录用户不同的凭据下运行该站点。

于 2011-03-16T20:38:47.603 回答
9

我无法使上述解决方案正常工作,我希望能够在不同凭据下运行 IIS Express 时通过 Visual Studio 进行调试。

  1. 使用“以管理员身份运行”打开命令提示符(您需要提升权限)
  2. 在命令提示符下导航到 Visual Studio 的目录(在我的例子中:VS2010 的“cd C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE”)。
  3. runas /netonly /user:[域]\[用户名] devenv.exe
  4. 从 VS 打开您的解决方案并填写您的 TFS 凭据(如果适用)。

您现在可以在作为凭据运行下的 IISExpress 下正常调试(假设这是您配置项目的方式)。如果您需要对数据库连接或类似的东西使用集成安全性,但需要使用不同的凭据,这非常有用。

于 2015-09-21T20:59:32.093 回答
6

“runas”只是解决方案。IIS Express 可能不遵守 applicationhost.config 文件中定义的 processModel 设置。

于 2011-03-16T23:28:01.123 回答
1

命令行中的 Runas /netonly IISExpress.exe 确实有效,如果您像我们一样迫切需要答案,那么它是非常可行的。相关帖子

于 2014-11-26T23:04:52.060 回答
0

我想知道这是否真的有效——IIS Express 似乎在同一个进程中运行所有应用程序池——并且该进程是在当前用户的上下文中执行的......?

似乎“运行方式”选项可以工作,但这需要我们从命令行(或构建事件)启动 IIS Express,而不是依赖 Visual Studio 启动它。:(

于 2011-11-01T13:00:41.247 回答