当身份impersonate = true时,System.Web.Mvc.dll无效

时间:2012-12-26 16:39:33

标签: asp.net-mvc web-config

我正在通过visual studio 2012启动的iis express上运行这个MVC 4站点。如果我将模拟更改为false,它可以正常工作。我有什么想法可能做错了吗?

2 个答案:

答案 0 :(得分:1)

如果要在不同于ASP.NET应用程序的默认安全上下文的安全上下文下运行ASP.NET应用程序,请使用ASP.NET模拟。

如果为ASP.NET应用程序启用模拟,则该应用程序可以在两种不同的上下文中运行:作为IIS 7验证的用户或您设置的任意帐户。例如,如果您使用匿名身份验证并选择以经过身份验证的用户身份运行ASP.NET应用程序,则应用程序将在为匿名用户(通常为IUSR)设置的帐户下运行。同样,如果您选择在任意帐户下运行应用程序,它将在为该帐户设置的任何安全上下文下运行。

默认情况下,禁用ASP.NET模拟。如果启用模拟,则ASP.NET应用程序将在IIS 7验证的用户的安全上下文中运行。

答案 1 :(得分:1)

我不知道如何回答为什么消息如此无用但我可以说它似乎是开发网站主机(iis express)的产品,而不是您要尝试验证的用户域中的产品。

在我的例子中,我在通过vpn连接的家用机器(未注册到域)上。将impersonate设置为false并在web.config中启用Windows身份验证,它将正常工作。当您打开模拟时,它会给出无效消息。

如果您在从注册到域的计算机(我的办公室中的工作站)运行时已启用模拟,则不会出现错误消息。

希望这有助于其他人。