日期:2014-05-17  浏览次数:20589 次

IIS集成windows身份验证 HTTP 401.3错误
现网站程序部署在windows 2003 IIS 6.0中 ,为了操作方便 希望实现直接获取windows帐号登录网站,IIS开启集成windows身份验证,但是客户端浏览器每次都弹出身份验证对话框,输入自己的windows帐号密码登录失败 得到http:401.3 ,使用运行服务器的帐号信息可以登录。但是需求的根本不希望看到这个要输入帐号密码弹出框。找了3天没有满意的解决方案,继续求教

先前开的帖子(没有解决问题):
http://topic.csdn.net/u/20110209/11/8d61cd7d-e145-4f2a-8618-5d8494ca7796.html?71626
http://topic.csdn.net/u/20110210/11/af81c4bb-6ad6-4341-9949-3dcb9574fcc2.html?28604

------解决方案--------------------
开启匿名访问
httpwebrequest自动登录

------解决方案--------------------
一般都是匿名访问 别的没弄过
------解决方案--------------------
传送门
------解决方案--------------------
再开新贴有意义吗?

你访问服务器的资源,你 输入自己的windows帐号密码 能不失败吗?

随便一个机器跟你的服务器没有任何关系。

你要输入服务器上的账户密码。或者采用域帐户(使用访问网站的计算机必须在域内),设置域帐户的权限。


开启匿名登录你是永远也得不到的
------解决方案--------------------
去看看这个我文章
http://king2009163-163-com.javaeye.com/blog/890351
------解决方案--------------------
检查防火墙、代理等是否变化了,Kerberos Key Distribution Center服务是否启用、客户端是否加入到域等,你也可以勾选Windows 域服务器的摘要式身份验证。

如果客户端浏览器通过ip地址访问IIS,则访问会被当作非本地Intranet访问,只会使用NTLM验证,并且不会将当前登录用户的用户名和密码自动传到服务器,而是弹出对话框要求手工输入用户名和密码。除非,在IE的本地Intranet设置中将这些ip地址设置为本地Intranet地址
如果客户端通过机器名访问IIS,则如果客户端用域用户登录,并且服务器也在域中,会采用Kerberos验证,通过此用户的验证票来确定是否有权访问IIS资源;如果客户端不是用域用户登录,或者服务器不在域中,则IE首先会将当前用户的用户名和密码自动传到服务器进行验证,如果成功,则IIS允许访问资源,否则拒绝访问,并且IE会弹出一个对话框,要求用户输入一个用户名和密码,输入了之后IE会用用户输入的用户名和密码再次传到服务器验证。

IE 是可以配置成自动发送当前登录用户的用户和密码的,并到 AD 验证,结果告诉给 IIS 站点

打开 IE 工具 》 选项 》安全 》 看到几个区域 》 选择 Intranet 区域 》 选择自定义 》滚到最底部,会看到“自动发送用户和密码”的设置,
默认只有 Intranet 开启,一般也只开这个区域,你可以将企业网的网址手动加入 intranet 区域,你还可以通过域组策略来实现所有域成员计算机的这个设置

如果都设置对了,仍然弹出登录界面,参考
http://blogs.leoworks.net/feng/2009/07/28/ntml-401-on-web-server-disableloopbackcheck/


关于设置,你可以参考
http://technet.microsoft.com/zh-cn/library/cc784103(WS.10).aspx
另外,在iis里设置的时候,可以在打开 “身份验证和访问控制”的编辑界面,查看帮助,里面有一些操作方法的介绍。
由于手头没有环境,不能给你进行 demo 了
------解决方案--------------------
模拟域帐户进行登录操作
------解决方案--------------------
一大半401.3都可以用这个方法找到原因,然后解决。

http://blogs.iis.net/webtopics/archive/2009/06/25/troubleshooting-http-401-3-errors-with-process-monitor.aspx

实在是解决不了的,一般就和Windows安装之后关于机器权限修改密切相关了。这里典型的原因则可能是Authenticated Users被从Users组里面删除了。手工加回去一般就好了。
------解决方案--------------------
关闭匿名,开户WINDOWS集成验证,权限设置。。。