混合模式身份验证 asp.net mvc

Mixed-mode Authentication asp.net mvc

我已阅读所有有关混合模式身份验证的堆栈溢出帖子和其他博客。我在任何地方都找不到分步实施。

这是我的场景。我为个人用户帐户开发了 asp.net MVC 4.5 和 asp.net identity 2.0。我们的一些客户使用活动目录来验证他们的用户,而其他客户则使用个人用户帐户。此外,那些使用 Active Directory 的用户也可以远程访问 Web 门户,在这种情况下,身份验证将来自数据库(表单 Authentication/individual 用户帐户身份验证)。

到目前为止我的发现

  1. 创建另一个 Web 应用程序。如果此客户端不使用 "active Directory",则重定向到登录屏幕,否则,从活动目录进行身份验证(但如何?)

  2. 一些链接表明没有必要像

    那样创建另一个网络应用程序
    • Mixed mode authentication with OWIN
    • ASP.NET Identity + Windows Authentication (Mix mode - Forms + Windows)
    • ASP.NET MVC and mixed mode authentication

真的很困惑该做什么以及如何做..大多数解决方案看起来都模糊且笼统

无需创建第二个 Web 应用程序。 Owin 旨在让您使用所有可用的提供程序(例如,Windows 身份验证和基于表单的身份验证),前提是您在 IIS 中启用了它们。

简单地说,你必须

  • 在 IIS 上启用匿名和 Windows 身份验证 - 身份验证 (使用最适合您的服务器或站点范围)
  • 匿名身份验证 - 编辑 - 使用应用程序池标识

我最近在一个 MVC 项目中实现了这种身份验证,它非常有效。我建议您阅读此 post https://github.com/MohammadYounes/MVC5-MixedAuth 它对我很有帮助。