Rav*_*tel 40 asp.net asp.net-mvc windows-authentication asp.net-identity
在提出这个问题之前,我已尽力搜索网页.我已经在stackoverflow上看到了类似的问题,但是,很长一段时间没有人满意地回答.这是再次尝试解决这个反复出现的问题.
问题
如何构建一个ASP.NET MVC 5网站,它为Intranet用户使用"Windows Auth",为Internet用户使用"Forms Auth"?我们希望使用ASP.NET Identity来实现这一目标.此外,我们不希望使用Active Directory组进行授权.对于Intranet用户,我们希望使用Active Directory对它们进行身份验证,然后回退到ASP.NET Identity以管理其角色和其他配置文件数据.
如果我们不要求最终用户选择auth方法,那就太好了.Web应用程序应无缝地登录Intranet用户.他们甚至不应该知道有登录屏幕.同样,不应要求互联网用户输入其域名凭据.他们应该立即看到基于表单的登录屏幕.
有没有推荐的解决方法?或者你可以评论以下任何一个是否是正确的解决方案?
http://world.episerver.com/blogs/Dan-Matthews/Dates/2014/8/Mixing-Forms-and-Windows-Authentication/
https://github.com/MohammadYounes/MVC5-MixedAuth
仅供参考这是2004年的文章,现在可能没什么用处:https: //msdn.microsoft.com/en-us/library/ms972958.aspx
小智 5
可能的方法之一是在 IIS 中创建两个站点,但具有相同的目标文件夹(站点源所在的位置)。例如,第一个站点适用于启用了 Windows 身份验证模式并绑定到 80 端口的内部用户,而第二个站点则适用于启用了匿名模式并绑定到 8080 端口的外部用户。然后,在防火墙上,您必须配置 NAT,所有来自本地网络或 VPN 内的请求将被重定向到端口 80 上的本地 IIS 服务器,所有来自 Internet 的请求将被重定向到 IIS 服务器的端口 8080。
小智 5
IIS配置
在IIS中为整个站点启用匿名身份验证状态,在根目录下为某个文件夹启用Windows身份验证(例如,/ WindowsLogin).在这个文件夹中放置aspx文件(用于WebForms项目)或创建ApiController(用于MVC项目).
站点设置
在登录页面上添加按钮"使用Windows/ActiveDirectory帐户登录"(通常的做法是添加按钮登录Twitter,Facebook,Gmail等).当用户按下此按钮时,它们将被重定向到/ WindowsLogin文件夹中的页面或控制器,这需要Windows身份验证.如果站点使用某些单点登录功能,则在该页面或控制器中找到它,在其他情况下,只为那里的Windows用户保存会话.如果用户访问了该页面或控制器,则他们已经过Windows身份验证用户的身份验证.