对于 IIS 8.5 和 MVC 4:
Windows 身份验证如何工作?
在这种模式下,User.Identity
(如 中HttpContext.Current.User.Identity
)由底层 Web 服务器填充。这可能是@R Kumar 演示的链接中的 IIS Express,或者是 @Thomas Benz 的视频中的完整 IIS。
具体来说,User.Identity 是一个 WindowsIdentity 对象。例如,以下演员将起作用:
WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;
如何在 web.config 文件中正确实施 Windows 身份验证?
<system.web>
<authentication mode="Windows" />
...
如何测试 Windows 身份验证是否真的适用于我的 ASP.NET MVC 4 网站?换句话说,如何在我的本地开发 PC 上使用本地 IIS(版本 8)和我公司的真实 Web 服务器上使用 IIS 版本 7 进行测试?
首先,更改 ASP.NET 授权以排除当前用户。例如
<system.web>
<authentication mode="Windows" />
<authorization>
<allow users="yourdomain\someotheruser" />
<deny users="*" />
</authorization>
其次,使用 IIS 管理器为您的站点启用 Windows 身份验证。它在“身份验证”功能下。 并禁用匿名身份验证。
请注意,旧的解释会建议您在站点的 web.config 元素下进行更改。但是,出于安全原因,最近的 IIS 实现阻止了这一点。
三、将浏览器指向网页。浏览器应要求您提供凭据,因为当前用户无权访问该网站。提供那些为站点授权的,你的 MVC 代码应该运行。
四、核对用户身份。例如
WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;