我以前从未为ASP.NET MVC web应用程序使用过Windows身份验证,但使用过窗体身份验证。最近,我有了一个Windows 4 web应用程序,它需要一个ASP.NET身份验证实现,用于授权登录我的公司web服务器的用户。因此,我有一些关于Windows身份验证的问题。我使用的是2012。
发布于 2013-06-21 21:32:44
我发现了一个非常有用的视频,通过一步一步地显示和测试ASP.NET MVC网站的身份验证对我非常有用。所以,我结束这个问题。
来自一张非常友好的海报的视频:
http://www.youtube.com/watch?v=x4hzVLZjfLM
发布于 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对象。例如,以下演员阵容将发挥作用:
WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;如何在web.config文件中正确实现web.config身份验证?
<system.web>
<authentication mode="Windows" />
...如何测试ASP.NET身份验证是否真正适用于我的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;发布于 2013-06-21 19:46:00
我已经用ASP.NET MVC1.0完成了这一工作。那是很久以前的事了。我记得IIS设置令人困惑。我只是做了一些检查,看起来就控制器上的属性而言,事情并没有发生太大的变化。
对于你的问题:
https://stackoverflow.com/questions/17224174
复制相似问题