很多朋友都知道在Web Service中支持Windows验证。但其实能用好的朋友并不是特别多,因为有几个特殊之处需要注意
1. 在服务端如何配置
这里要注意的是,authentication的mode默认就是windows,但光是设置这个模式则毫无用处。必须同时设置有关的authorization规则。并且不要光是allow,最后一定要deny掉所有没有被allow的用户或者组
服务必须发布到IIS服务器中才真正可以进行调试。如果没有发布,而仅仅是在VS里面调试,那么就无法进行一些设置,例如windows验证模式具体是什么类型等等。
2. 发布服务
一般这里需要禁用“匿名访问”。同时你可能需要选择一种具体的验证模式(基本,还是集成)
如果选择“基本”,那么表示客户端可以动态指定用户名和密码。但要注意的是,此时用户名和密码是明文发送的,有安全性隐患。(可以配合SSL)来解决该问题
如果选择“集成”,那么表示客户端将自动与服务器进行协商,确定用NTLM或者Korbers的验证身份,也就是说需要自动地将客户端的Windows凭据发送给服务端。
3. 客户端如何编写代码(如果服务端的验证模式是“基本”)
4. 客户端如何编写代码(如果服务器的验证模式为“集成”)
这里只需要(也只能)使用所谓的DefaultNetworkCredentials这个特殊的凭据,其实就是代表了当前客户端的Windows身份。很显然,这种情况下,客户端与服务器端需要在一个可以信任的域环境中。
5. 最后值得一提的是:“基本”和“集成”这两种验证方式是可以并存的