OData 1-2 windows 身份验证和OData
windows 身份验证和OData
1.服务器端
1) 集成身份验证
在使用IIS作为服务宿主的情况下,需要打开集成身份验证,关闭匿名身份验证
windows身份验证要求请求中包含以下的http header: (以下例子是服务器发生401时给客户端的错误提示)
WWW-Authenticate: NTLM
WWW-Authenticate: Negotiate
其中NTLM意味着你需要使用windows身份验证
Negotiate意味着客户端可以尝试Kerberos 身份验证
2)基本身份验证
当你把IIS配置为基本身份验证的时候
服务器返回401会如下所示:
WWW-Authenticate: Basic realm="mydomain.com"
这些信息告诉客户端,需要提供一个给mydomain.com的身份凭据
基本身份验证非常简单,但是并不安全,除非你使用Https
2.客户端
1)浏览器
大多数在遇到http401的时候会弹出一个登录框给用户
2).net客户端应用程序
如果你的程序运行在windows系统下代码如下所示
MyDataContext ctx = new MyDataContext(uri);
ctx.Credentials = System.Net.CredentialCache.DefaultCredentials;
如果你的程序运行在非windows系统下,请考虑以下代码
ctx.Credentials = new NetworkCredential( "username", "password", "domain");
Silverlight 4:
ctx.UseDefaultCredentials = true;