6

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

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

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

网络配置:

<authentication mode="Windows" />

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

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

有没有办法解决?

更新:

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

4

4 回答 4

3

从MSDN检查这个

impersonate="true"连同它一起添加

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

然后使用

 ((HttpContext)context).User.Identity as WindowsIdentity
于 2013-10-08T09:09:57.433 回答
1

对 ASP.NET 和 IIS 使用 Windows 身份验证,并在 web.config 中指定 ASP.NET URL 授权,如本答案所示。每当当前用户被授权时,该用户将被静默登录。

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

于 2014-03-28T12:35:59.547 回答
1

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

于 2014-05-21T01:14:54.823 回答
0

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

<add key="enableSimpleMembership" value="false" />
于 2013-10-31T13:13:38.397 回答