Asp.net mvc 具有windows身份验证的ASP.NET MVC intranet应用程序,如何自动获取当前域用户?

Asp.net mvc 具有windows身份验证的ASP.NET MVC intranet应用程序,如何自动获取当前域用户?,asp.net-mvc,authentication,windows-authentication,Asp.net Mvc,Authentication,Windows Authentication,我需要我的MVC4应用程序在我的index.cshtml页面中获取登录到计算机的当前域用户的自动登录 应用程序的其余部分通过使用Authorize属性(我需要保护的操作)按预期工作 我只需要对应用程序说“让当前机器登录用户,不要保护任何东西,并将用户带到登录页” web.config: <authentication mode="Windows" /> 像这样,用户在登录页上是空白的 如果我试图在我的索引操作上只设置[Authorize],那么它会要求提供凭据,然后继续我想要的

我需要我的MVC4应用程序在我的index.cshtml页面中获取登录到计算机的当前域用户的自动登录

应用程序的其余部分通过使用Authorize属性(我需要保护的操作)按预期工作

我只需要对应用程序说“让当前机器登录用户,不要保护任何东西,并将用户带到登录页”

web.config:

<authentication mode="Windows" />

像这样,用户在登录页上是空白的

如果我试图在我的索引操作上只设置[Authorize],那么它会要求提供凭据,然后继续我想要的操作,而不会保护登录页上的任何内容

这有什么办法吗

更新:

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

请从

添加
impersonate=“true”

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

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


对ASP.NET和IIS使用Windows身份验证和,并在web.config中指定ASP.NET URL授权。只要当前用户获得授权,该用户将以静默方式登录


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

我刚刚解决了这个问题。我应该先说明一下,这是在win 2k8r2上运行iis 7的情况。对我来说,修复方法是转到iis中的“身份验证”菜单->选择windows身份验证->单击右窗格中的“提供程序”->“调整”,以便只有ntlm在可用提供程序列表中。“协商”似乎是强制登录提示的罪魁祸首。

没有。我已经尝试了这个,现在又尝试了一次。它仍然要求进行身份验证。此应用应在IIS中启用匿名登录?@e4rthdog,否。不需要匿名登录。请尝试。若我并没有启用匿名,它会弹出登录对话框。如果启用匿名,则用户标识为空,无需登录box@e4rthdog,它将提示您输入windows身份验证详细信息。如果你从visual studio运行,你不会得到它:),我相信IIS正在运行另一台机器,而不是在你的机器上:)@e4rthdog,我在windows auth应用程序上工作过。它总是会问。我不确定是否有任何工作可以自动检测和运行。希望由于安全原因,这将是不可能的。检查谷歌,如果你发现任何。这将是有用的:)我在下面提供了一个与“更新”相矛盾的测试答案。你能看一下吗?谢谢。您正在/正在尝试使用哪个浏览器执行此操作?我发现只有IE才会这样做。这就是我的答案(运行IIS 7.5)。
 ((HttpContext)context).User.Identity as WindowsIdentity
<add key="enableSimpleMembership" value="false" />