ASP.NET MVC 4的Windows身份验证 – 它如何工作,如何测试

前端之家收集整理的这篇文章主要介绍了ASP.NET MVC 4的Windows身份验证 – 它如何工作,如何测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从来没有为 ASP.NET MVC Web应用程序使用Windows身份验证,而是使用表单身份验证。最近,我有一个ASP.NET MVC 4 Web应用程序,需要为授予登录我的公司Web服务器的用户提供Windows身份验证。所以,我有一些关于Windows认证的问题。我使用的是Visual Studio 2012。

> Windows验证如何工作?
>如何在web.config文件中正确实现Windows身份验证?
>如何测试Windows身份验证是否真的适用于我的ASP.NET MVC 4网站?换句话说,我该如何在本地开发的PC上使用本地的IIS(版本8)和我的公司的真正的Web服务器与IIS版本7进行测试?

解决方法

针对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)以及在我的公司的IIS 7版本的真实Web服务器上进行测试?

首先,更改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;

猜你在找的asp.Net相关文章