ASP.NET Identity + Windows 身份验证(混合模式 - 表单 + Windows)

2023-12-23

在问这个问题之前,我已经尽力在网上搜索了。我在 stackoverflow 上看到过类似的问题,但是很长时间以来都没有得到令人满意的答案。这是回答这个反复出现的问题的又一次尝试。

问题

如何构建一个 ASP.NET MVC 5 网站,对 Intranet 用户使用“Windows Auth”,对 Internet 用户使用“Forms Auth”?我们希望使用 ASP.NET Identity 来完成此任务。此外,我们不想使用 Active Directory 组进行授权。对于 Intranet 用户,我们希望使用 Active Directory 对他们进行身份验证,然后回退到 ASP.NET Identity 来管理他们的角色和其他配置文件数据。

如果我们不要求最终用户选择身份验证方法,那就太好了。 Web应用程序应无缝登录内网用户。他们甚至不应该知道有一个登录屏幕。同样,不应要求互联网用户输入其域凭据。他们应该立即看到基于表单的登录屏幕。

有没有推荐的方法来解决这个问题?或者您能否评论以下是否是正确的解决方案?

http://world.episerver.com/blogs/Dan-Matthews/Dates/2014/8/Mixin-Forms-and-Windows-Authentication/ http://world.episerver.com/blogs/Dan-Matthews/Dates/2014/8/Mixing-Forms-and-Windows-Authentication/

https://github.com/MohammadYounes/MVC5-MixedAuth https://github.com/MohammadYounes/MVC5-MixedAuth

http://mvolo.com/iis-70-twolevel-authentication-with-forms-authentication-and-windows-authentication/ http://mvolo.com/iis-70-twolevel-authentication-with-forms-authentication-and-windows-authentication/

仅供参考这是 2004 年的文章,现在可能没有帮助:https://msdn.microsoft.com/en-us/library/ms972958.aspx https://msdn.microsoft.com/en-us/library/ms972958.aspx


IIS配置
在 IIS 中为整个站点启用匿名身份验证状态,并为根目录下的某些文件夹(例如 /WindowsLogin)启用 Windows 身份验证。在此文件夹中放置 aspx 文件(对于 WebForms 项目)或创建 ApiController (对于 MVC 项目)。

站点设置
在登录页面上添加按钮“使用 Windows/ActiveDirectory 帐户登录”(与添加使用 Twitter、Facebook、Gmail 等按钮登录的常见做法类似)。当用户按下此按钮时,他们将被重定向到 /WindowsLogin 文件夹中的页面或控制器,这需要 Windows 身份验证。如果站点使用某些单点登录功能,请在该页面或控制器中找到它,在其他情况下,只需在那里保存 Windows 用户的会话。如果用户访问该页面或控制器,则他们已经被验证为 Windows 用户。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET Identity + Windows 身份验证(混合模式 - 表单 + Windows) 的相关文章

随机推荐