gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 07:27:21 24 4
gpt4 key购买 nike

我从未使用过 Windows 身份验证 ASP.NET MVC之前是Web应用程序,但是表单例份验证。最近,我有一个 ASP.NET MVC 4 Web 应用程序,需要为有权登录我公司 Web 服务器的用户实现 Windows 身份验证。所以,我有一些关于 Windows 身份验证的问题。我使用的是 Visual Studio 2012。

  • Windows 身份验证如何工作?

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

  • 如何测试 Windows 身份验证是否确实适用于我的 ASP.NET MVC 4 网站?换句话说,我如何在我的本地开发电脑上使用 local 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 网站?换句话说,如何在具有本地 IIS(版本 8)的本地开发 PC 以及具有 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 - ASP.NET MVC 4 的 Windows 身份验证 - 它如何工作,如何测试它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17224174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com