我在IIS 6.0上使用Windows身份验证运行我的asp.net Web表单应用程序,并且IIS日志中有以下记录:
2014-01-15 14:51:26 W3SVC1 192.168.21.16 GET /MyApp/myPage.aspx 80 - 192.168.128.19 ... 401 1 0
2014-01-15 14:51:26 W3SVC1 192.168.21.16 GET /MyApp/myPage.aspx 80 MyDomain\UserName 192.168.128.19 ... 200 0 0
因此,请求没有用户名(结果是401错误)后跟请求用户名 . 有时没有用户名的记录会出现,但并非总是如此 . 在其他情况下,只有用户名的记录 .
拜托,谁能告诉我为什么我会收到401错误?
附:匿名身份验证被禁用!
1 回答
您已经了解了http auth的工作原理 .
当用户首次连接到服务器时,浏览器不会发送任何凭据 . 原因是浏览器不知道是否需要 . 它也不知道发送密码的格式,更重要的是,您不希望将您的用户名密码发送给您访问过的每个服务器 .
所以IIS收到这个未经过身份验证的请求,然后发回401. 401不仅仅意味着您没有通过身份验证来访问此网页,它还包括您应该如何进行身份验证(BASIC用户名/密码,Kerberos等等,以便列举一些方法) ) .
TLDR . 401是告诉浏览器如何发送用户名/密码(以及您需要进行身份验证才能查看资源) .