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;

    

    

参考原文:http://blogs.msdn.com/b/astoriateam/archive/2010/05/10/odata-and-authentication-part-2-windows-authentication.aspx

posted on 2010-12-20 16:43  听说读写  阅读(3300)  评论(0编辑  收藏  举报

导航