加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在针对LDAP进行身份验证时挂钩进入Windows身份验证以获取凭据

发布时间:2020-12-14 02:47:23 所属栏目:Windows 来源:网络整理
导读:我有一个Web门户,供员工更新他们的详细信息.人们使用他们的Active Directory凭据登录,我设置OWIN cookie进行身份验证.这一切都是通过MVC登录页面完成的,与IIS上的 Windows身份验证无关. 现在公司浏览器是Internet Explorer,并配置为自动登录到其他Windows身
我有一个Web门户,供员工更新他们的详细信息.人们使用他们的Active Directory凭据登录,我设置OWIN cookie进行身份验证.这一切都是通过MVC登录页面完成的,与IIS上的 Windows身份验证无关.

现在公司浏览器是Internet Explorer,并配置为自动登录到其他Windows身份验证站点,而不提示输入密码.当人们使用公司PC并登录他们的域帐户时,就会发生这种情况.如果他们在家工作,则基本身份验证提示会要求在这些系统上提供凭据.

现在,我希望在用户登录到他们的Windows域帐户,从工作PC登录时实现自动身份验证,如果他们在家工作,则会显示登录页面.

我知道401挑战和身份验证协商,但从未通过ASP.Net启动.我见过用户被重定向到IIS配置为Windows身份验证的页面的解决方案,但我希望在没有IIS配置的情况下完成此操作.另外我记得我见过有人提到一个解决方案,其中一个页面加载到< iframe>如果检查了基本身份验证,并且通过该身份验证成功,则将已经过身份验证的用户重定向到登录页面.

所以我的问题归结为:是否有办法在控制器的特定操作上启动(并完成)401基本身份验证挑战?然后挂钩到Controller.User.Identity属性来设置OWIN cookie?

UPD:
根据评论:我希望Kerberos(Windows身份验证)在用户位于域网络时工作,因此他们会自动登录.但是,当用户不在域网络上时,我不希望进行Windows身份验证,而是希望自定义登录页面包含密码重置和注册选项(给定员工验证).

解决方法

如果我正确地阅读了你的问题,你可能想要做类似以下的事情……

1)创建2个授权过滤器:一个使用AD,另一个使用BasicAuthentication

2)按照你想要的顺序放置它们.在您的情况下,如果我理解正确,您想先检查AD.如果AD身份验证失败,则您将故障转移到Basic one(这是您实施401 challenge的位置).
要确保按所需顺序执行过滤器,请注意过滤器上的Order属性:https://msdn.microsoft.com/en-us/library/gg401854%28v=vs.98%29.aspx

3)无论你最终使用什么过滤器(AD或BasicAuth),你都可以从那里设置你的OWIN cookie

希望有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读