问题
如何构建一个ASP.NET MVC 5网站使用“Windows身份验证”内部网用户和“表单验证”的互联网用户?我们想使用ASP.NET Identity来完成这个。此外,我们不想使用Active Directory组进行授权。对于Intranet用户,我们要使用Active Directory对它们进行身份验证,然后回退到ASP.NET Identity以管理其角色和其他配置文件数据。
如果我们不要求最终用户选择认证方法,这将是很好的。 Web应用程序应该无缝地登录Intranet用户。他们甚至不应该知道有一个登录屏幕。同样,不应要求互联网用户输入其域凭据。他们应该立即看到基于表单的登录屏幕。
有没有任何推荐的解决方法?或者你能评论以下任何是正确的解决方案?
http://world.episerver.com/blogs/Dan-Matthews/Dates/2014/8/Mixing-Forms-and-Windows-Authentication/
https://github.com/MohammadYounes/MVC5-MixedAuth
FYI这是2004年的文章,可能不是有帮助的现在:
https://msdn.microsoft.com/en-us/library/ms972958.aspx
解决方法
@H_403_22@ 这个术语是混合模式认证。我做了这个多次。你只需要调整你的主要网站。这是我如何做到这一点。保持你的主MVC网站,但运行它作为匿名VS在Windows Auth下。
内部网站
创建重定向URL网站:将此网站设置为Window Auth,以便您可以从Active Directory中提取用户ID。为您的用户提供此URL和/或将其作为您在Intranet上点击的链接。然后这个网站调用您的MVC站点并传递用户凭据(登录ID)。
一个。这可以通过URL上的加密字符串或cookie中的加密值来完成。您也可以使用到期日期/时间值进行加密。