如何在我的MVC网站中启用Impersonation?

时间:2011-11-30 20:16:18

标签: asp.net asp.net-mvc asp.net-mvc-3 windows-authentication impersonation

我已经在Cassini(Visual Studio)Web服务器中使用了Windows身份验证一段时间了但是当我更改为在IIS 7中运行我的站点时,该站点不再正常工作。

我禁用了匿名身份验证,启用了Windows身份验证,并启用了ASP.NET模拟。我的web.config文件包括:

    <authentication mode="Windows" />
    <identity impersonate="true" />

问题是每当我尝试访问该网站时,系统都会提示您提供用户名和密码。

我的期望是我的浏览器会将我的凭据发送到IIS(通过某种身份验证令牌),IIS会在所有页面请求中冒充我的用户。

为什么我被提示登录?我该怎么做才能避免此提示并让ASP.NET使用我的模拟用户名?

更新 我将我的网站添加到IE中的“Intranet区域”并使用IE我不再收到提示输入用户名和密码。在IE中为Intranet站点设置了自动登录。

但是,我不明白为什么在VS中使用Cassini Web服务器这不是问题?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您是否针对IIS Express尝试过此操作?

这只是一个尝试,但Visual Studio从同一个用户帐户运行Cassini和IE,因此您的身份模拟可能是从Visual Studio传递的。 IIS 7用户帐户由应用程序池建立,可以是与运行VS / Cassini不同的用户。我相信IIS Express作为您的用户帐户运行,因此身份模拟可能会在不提示或更改Intranet区域设置的情况下对其进行操作。

如果可行,您可以将IIS 7应用程序池配置为以用户帐户身份运行,并且提示可能会消失。

同样,这只是一个刺。