带有Windows身份验证的ASP.NET MVC Intranet应用程序,如何自动获取当前域用户?

时间:2013-10-08 08:59:38

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

我需要我的MVC4应用程序来获取登录到机器的当前域用户自动登录到我的index.cshtml页面。

应用程序的其余部分按照预期使用Authorize属性执行我需要保护的操作。

我只需要对应用说“获取当前计算机登录用户,不保护任何内容并将用户带到目标网页”。

的web.config:

<authentication mode="Windows" />

这样用户在着陆页上就是BLANK。

如果我尝试将[授权]放在我的索引操作上,那么它会要求提供凭据,然后按照我的意愿继续,而无需在登录页面上保护任何内容。

有什么方法吗?

更新

无论你做什么,似乎都无法绕过登录提示并让应用程序自动获取当前域用户并将其登录到应用程序中。

4 个答案:

答案 0 :(得分:3)

MSDN

中查看此内容

随身携带impersonate="true"

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

然后使用

 ((HttpContext)context).User.Identity as WindowsIdentity

答案 1 :(得分:1)

使用Windows身份验证以及ASP.NET和IIS,并在web.config as shown in this answer中指定ASP.NET URL授权。每当授权当前用户时,用户将以静默方式登录。

使用IE 11,IIS 8.5,Windows Server 2012 R2进行测试。

答案 2 :(得分:1)

我刚刚完成了这个问题的斗争。我应该预先知道这是在win 2k8r2上运行的iis 7。对我的修复是去iis中的身份验证菜单 - &gt;选择Windows身份验证 - &gt;点击右侧窗格中的提供商 - &gt;调整,以便只有ntlm在可用提供者列表中。谈判似乎是迫使登录提示的罪魁祸首。

答案 3 :(得分:0)

您也可以尝试将以下内容添加到<appSettings>

<add key="enableSimpleMembership" value="false" />
相关问题