加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 18:45:56 所属栏目:asp.Net 来源:网络整理
导读:我从来没有为 ASP.NET MVC Web应用程序使用Windows身份验证,而是使用表单身份验证。最近,我有一个ASP.NET MVC 4 Web应用程序,需要为授予登录我的公司Web服务器的用户提供Windows身份验证。所以,我有一些关于Windows认证的问题。我使用的是Visual Studio
我从来没有为 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="yourdomainsomeotheruser" />
      <deny users="*" />
    </authorization>

其次,使用IIS管理器为您的站点启用Windows身份验证。它在“验证”功能下。并禁用匿名身份验证。

请注意,较旧的解释将建议您在网站的web.config的元素下进行更改。但是,由于安全原因,最近的IIS实现会阻止这种情况。

三,将浏览器指向网页。浏览器应该要求您提供凭据,因为当前用户不允许访问该网站。提供网站授权的,并且您的MVC代码应该运行。

四,检查用户身份。例如。

WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读