我有一个web门户,员工可以在其中更新自己的详细信息。人们使用他们的Active Directory凭据登录,并且我设置OWIN cookie进行身份验证。这一切都是通过MVC登录页面完成的,与IIS上的Windows身份验证无关。
现在公司浏览器是Internet Explorer,并配置为无需提示密码即可自动登录其他Windows身份验证站点。当人们使用公司PC并登录到其域帐户时,就会发生这种情况。如果他们在家中工作,则这些系统会询问凭据以进行基本身份验证提示。
现在,当用户从工作PC登录到其Windows域帐户时,我想实现自动身份验证,并在他们在家工作时呈现登录页面。
我知道401挑战和身份验证协商,但从未通过ASP.Net启动过此操作。我看到过解决方案,其中用户被重定向到IIS配置为Windows身份验证的页面,但我希望在没有IIS配置的情况下完成此操作。我记得有人提到过这样一个解决方案:将页面加载到
因此,我的问题可以归结为:是否有一种方法可以在控制器的特定操作上启动(和完成)基本身份验证的401挑战?然后钩入
现在公司浏览器是Internet Explorer,并配置为无需提示密码即可自动登录其他Windows身份验证站点。当人们使用公司PC并登录到其域帐户时,就会发生这种情况。如果他们在家中工作,则这些系统会询问凭据以进行基本身份验证提示。
现在,当用户从工作PC登录到其Windows域帐户时,我想实现自动身份验证,并在他们在家工作时呈现登录页面。
我知道401挑战和身份验证协商,但从未通过ASP.Net启动过此操作。我看到过解决方案,其中用户被重定向到IIS配置为Windows身份验证的页面,但我希望在没有IIS配置的情况下完成此操作。我记得有人提到过这样一个解决方案:将页面加载到
<iframe>
中,检查基本身份验证,如果该身份验证成功,则将已经通过身份验证的用户重定向到着陆页。因此,我的问题可以归结为:是否有一种方法可以在控制器的特定操作上启动(和完成)基本身份验证的401挑战?然后钩入
Controller.User.Identity
属性设置OWIN cookie?
更新:
如评论所述:我希望在用户处于域网络时使用Kerberos(Windows身份验证),因此他们会自动登录。但是,当用户不在域网络上时,我不希望进行Windows身份验证,而是希望使用自定义登录页面,并提供密码重置和注册选项(考虑员工验证)。