根据fiddler监控的结果,IE集成windows身份验证一共进行了3次握手。
回家
-
401 未授权
WWW 身份验证:协商,NTLM
回家
授权:协商UYTYGHGYKHKJPPP-===
-
401 未授权
WWW-身份验证:协商UYUGKJKJKJ+++766==
回家
授权:协商HJGKJLJLJ+++===
-
200 正常
WWW-身份验证:协商UHLKJKJKJJLK===
谁知道这三个,特别是第二个,具体做了什么。
PS 网络环境是工作组模式,不是域模式,服务器是托管在我本地PC上的网站。换句话说,客户端(IE)和服务器都在同一台机器上。
答案1
这就是基于 SPNEGO 的 Kerberos 和 NTLM HTTP 身份验证有效。这基本上是通过 HTTP 隧道传输简单和受保护协商 (SPNEGO) 和通用安全服务应用程序接口 (GSSAPI) 协议。
客户端尝试访问资源并收到带有WWW-Authenticate: Negotiate, NTLM
标头的 401。客户端识别出 Negotiate 身份验证协议可用,并尝试再次请求资源,在Authorization
标头中提供 GSSAPI SPNEGO 协商消息。服务器将响应另一个 401 和另一个“WWW-Authenticate”标头。此过程将持续,直到 SPNEGO 协商完成。