现在有如下需求
1、如果是域登录用户,打开OA系统直接进入、
2、如果是非域用户登录,则打开登录页面输入账号密码登录
现在碰到如下问题,只有开启了windows身份认证才可以获取到域用户名,但是非域用户就无法进行登录了,浏览器会弹出账号密码框。
所以我的问题是如果如何获取到域用户名,如果获取不到转到登录页,获取到了则直接登录系统。
由于当Windows身份验证失败后,IIS将自动导向IIS自定制好的错误页面Redirect401.htm,我们无法通过程序去控制,所以我们必须自定制Redirect401.htm,将这个页面导向我们自定制的Webform身份验证的页面WebLogin.aspx页面。
感谢您的回答,这里我有一个地方不理解。
在自定义Redirect401.htm这个页面,导向WebLogin.aspx,在weblogin登录后(form认证),就可以访问其他页面了。本身整站不是设置的windows身份认证吗
@梦随清风: 不然怎么知道Windows身份认证失败呢
@dudu: 我知道这个意思,我的意思是 现在整个网站是windows认证,虽然我通过自定义错误页转发进去了weblogin,可是这个页面实现的是form认证,认证完应该也不能访问其他页面的吧
链接里面有张图片没有显示,不知道是否那张图片里面是怎么实现的?
@梦随清风: windows验证与forms验证只是不同的验证方式,其他页面不关心验证方式,只关心是否通过验证以及当前登录用户的信息
@dudu: 这个我明白,我说的是 文档开头说了整站设置了windows身份认证,那么我通过那个form表单输入用户名密码后,怎么能跳转到其他的页面啊(整站设置了windows认证的,form表单认证完成,但是本身还是没有通过windows认证,难道不还是打不开其他页面)。
比如登录后的首页main页面,因为整站开启了windows身份认证,那么非域控人员哪怕在form表单输入用户名密码验证通过后也是无法打开main页面的吧?
@梦随清风: 我对这个没有实际研究过,只是找一篇博文给你参考一下
@dudu: 好的多谢了