如题所述
AD域登陆请求会有几次信息交互过程,这个你可以查询一下NTLM的协议。
第一次服务器返回401时会弹出要求输入域名和密码的对话框,这个时候你应该从系统中自动取得域名和账号名,然后跳过第一次响应的401,将域账号传给AD服务器进行验证。直到AD服务器验证通过后,返回登录成功的结果给client端。
相关的资料你可以查一下:NTLM (NTLM v2会不同,vista和win7之后的系统)
至于代码的逻辑修改,就需要你自己完成了。
现有的java方式使用NTLMv2的,还没有支持http的。追问
第一次服务器返回401时会弹出要求输入域名和密码的对话框,这个时候你应该从系统中自动取得域名和账号名,然后跳过第一次响应的401,将域账号传给AD服务器进行验证。直到AD服务器验证通过后,返回登录成功的结果给client端。
相关的资料你可以查一下:NTLM (NTLM v2会不同,vista和win7之后的系统)
至于代码的逻辑修改,就需要你自己完成了。
现有的java方式使用NTLMv2的,还没有支持http的。追问
这个时候你应该从系统中自动取得域名和账号名
请问怎么样获得域名和账号名
request.getRemoteHost()得到登录的计算机域名,如果没有域名就得到IP
request.getRemoteAddr()得到登录计算机的IP
其实麻烦的地方不在获取域名和用户名,麻烦的地方在于你怎么去验证它的密码。因为自动登录,用户不会去输入密码,但实际上,只要用户已经在机器上登录域账号,其实默认密码已经输入正确了。
温馨提示:答案为网友推荐,仅供参考