首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC 4的Windows身份验证--如何工作,如何测试

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

Stack Overflow用户
提问于 2013-06-20 21:32:42
回答 3查看 82.9K关注 0票数 40

我以前从未为ASP.NET MVC web应用程序使用过Windows身份验证,但使用过窗体身份验证。最近,我有了一个Windows 4 web应用程序,它需要一个ASP.NET身份验证实现,用于授权登录我的公司web服务器的用户。因此,我有一些关于Windows身份验证的问题。我使用的是2012。

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

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-21 21:32:44

我发现了一个非常有用的视频,通过一步一步地显示和测试ASP.NET MVC网站的身份验证对我非常有用。所以,我结束这个问题。

来自一张非常友好的海报的视频:

http://www.youtube.com/watch?v=x4hzVLZjfLM

票数 9
EN

Stack Overflow用户

发布于 2014-03-28 12:15:23

对于IIS 8.5和MVC 4:

Windows身份验证是如何工作的?

在这种模式下,User.Identity (如HttpContext.Current.User.Identity)由底层web服务器填充。这可能是来自@R Kumar演示的链接中的IIS Express,也可能是@Thomas Benz的视频中的完全成熟的IIS。

具体来说,User.Identity是一个WindowsIdentity对象。例如,以下演员阵容将发挥作用:

代码语言:javascript
复制
WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;

如何在web.config文件中正确实现web.config身份验证?

代码语言:javascript
复制
  <system.web>
    <authentication mode="Windows" />
  ...

如何测试ASP.NET身份验证是否真正适用于我的ASP.NET MVC 4网站?换句话说,如何在本地开发PC上使用本地IIS (版本8),以及在我的公司真正的web服务器上使用IIS 7测试它?

首先,更改ASP.NET授权以排除当前用户。例如。

代码语言:javascript
复制
  <system.web>
    <authentication mode="Windows" />
    <authorization>
      <allow users="yourdomain\someotheruser" />
      <deny users="*" />
    </authorization>

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

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

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

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

代码语言:javascript
复制
WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;
票数 34
EN

Stack Overflow用户

发布于 2013-06-21 19:46:00

我已经用ASP.NET MVC1.0完成了这一工作。那是很久以前的事了。我记得IIS设置令人困惑。我只是做了一些检查,看起来就控制器上的属性而言,事情并没有发生太大的变化。

对于你的问题:

  1. 它怎麽工作?下面的引用很好地总结了一些事情。http://www.asp.net/mvc/tutorials/older-versions/security/authenticating-users-with-windows-authentication-cs并不完全适合ASP.NET MVC4.0,但它有一些背景。 http://msdn.microsoft.com/en-us/library/gg703322%28v=vs.98%29.aspx是用于ASP.NET MVC 3.0的。 我太新了,不能发布两个以上的链接,所以您必须在MSDN中搜索.NET Framework4的“.NET类”。
  2. web.config的设置是什么?-我只记得更改了一个元素,“身份验证模式”。
  3. 至于测试,我的Windows OS版本匹配得更好,我的开发机器也在同一个Windows域中。但如果我没记错的话,这只是起作用了。YMMV,但我记得我考虑过的一件事是实现我自己的授权。也许这是您的一种方式,您可以自己滚,然后在生产中切换到Windows身份验证。但是,如果您可以在公司域中设置测试服务器,我建议使用测试服务器进行几次测试迭代。
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17224174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档