zoukankan      html  css  js  c++  java
  • HTTP Basic Authentication for RESTFul Service

    面对用户认证的问题。最常见的实现方式一般是这样的:用户提交一个含有用户名和密码的表单,服务端脚本验证其合法性,如果通过验证,则在Session里标识一下,如此一来,在同一个Session周期里,用户就维持了自己的认证状态。基于Session的认证最大的问题在于它不符合REST风格,更直接一点说,它破坏了HTTP的无状态特性,从而对可扩展性造成障碍。
    RFC2617里规定的两种标准的认证方式(Baisc,Digest),和Session方式最根本的不同是,它们是符合HTTP无状态特性的,所以相对而言更值得推荐。

    什么是HTTP Basic Authentication?直接看http://en.wikipedia.org/wiki/Basic_authentication_scheme吧。

    在你访问一个需要HTTP Basic Authentication的URL的时候,如果你没有提供用户名和密码,服务器就会返回401,如果你直接在浏览器中打开,浏览器会提示你输入用户名和密码(google浏览器不会).

    要在发送请求的时候添加HTTP Basic Authentication认证信息到请求中,有两种方法:

    • 一是在请求头中添加Authorization:
      Authorization: "Basic 用户名和密码的base64加密字符串"
    • 二是在url中添加用户名和密码:

    WCF Data Services团队最近发表了一系列关于OData服务和客户端上可用验证机制的文章。具体参看http://www.infoq.com/cn/news/2010/07/odata-authentication-series,其中也有介绍到HTTP Basic Authentication :

    Custom Basic Authentication(自定义基本验证)——涉及在基础结构级别(如IIS)上进行的基本质询响应(challenge-response)验证的场景。假如简单的用户名/密码不能满足要求,还要支持用户/密码信息存储在数据库中的情况。

    对于IIS 7来说,Codeplex上有个项目可以解决这个问题:http://custombasicauth.codeplex.com

    customBasicAuth的安装方法:

    1、已管理员身份打开命令行

    rem ----------- !!! RUN AS ADMINISTRATOR !!!
    rem ---
    2、将程序集注册到GAC

    ----------- 1 GAC DLLs -----------------

    rem HTTP module
    gacutil -if LeastPrivilege.CustomBasicAuthenticationModule.dll

    rem Server configuration module
    gacutil -if LeastPrivilege.CustomBasicAuthentication.Management.dll

    rem Client UI module
    gacutil -if LeastPrivilege.CustomBasicAuthentication.Management.Client.dll

    3、注册CustomBasicAuthentication_schema

    rem ----------- 2 Register Schema -----------------
    iisschema.exe /install CustomBasicAuthentication_schema.xml

    4、注册管理端

    rem----------- 2 Register Management  -----------------
    IisRegMgmt CustomBasicAuth LeastPrivilege.CustomBasicAuthentication.Management.CustomBasicAuthenticationModuleProvider LeastPrivilege.CustomBasicAuthentication.Management.dll

    5、在具体的Web应用程序中设置,主要参考下面的文章:

    http://www.leastprivilege.com/HTTPBasicAuthenticationAgainstNonWindowsAccountsInIISASPNETPart3AddingWCFSupport.aspx

    相关文章:

    Custom Security OData Service – Wcf Data Services

    http://franssenden.wordpress.com/2010/06/14/custom-security-odata-service-wcf-data-services/

    欢迎大家扫描下面二维码成为我的客户,为你服务和上云

  • 相关阅读:
    1084: 计算两点间的距离(多实例测试)
    1083: 数值统计(多实例测试)
    回文数的判断
    1082: 敲7(多实例测试)
    BZOJ 1303 [CQOI2009]中位数图
    计蒜客 Yingchuan Online F题 (Floyd 变形)
    并查集入门题
    常见错点
    单调队列入门题
    线段树入门题
  • 原文地址:https://www.cnblogs.com/shanyou/p/1795032.html
Copyright © 2011-2022 走看看