摘要:一、基本协议流程:(1) Client请求RO(Resource Owner)的授权:请求中一般包含:要访问的资源路径,操作类型,Client的身份等信息。(2) RO批准授权:并将“授权证据”发送给Client。至于RO如何批准,这个是协议之外的事情。典型的做法是,AS提供授权审批界面,让RO显式批准。(3) Client向AS(Authorization Sever)请求“访问令牌(Access Token)”。此时,Client需向AS提供RO的“授权证据”,以及Client自己身份的凭证。(4) AS验证通过后,向Client返回“访问令牌”。访问令牌也有多种类型,若为bearer类型
阅读全文
摘要:OAuth2.0是OAuth协议的下一个版本,但不向后兼容OAuth1.0。OAuth2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机提供专门的认证流程。 OAuth(开放授权)是个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片、视频、联系人列表),而无需将用户名和密码提供给第三方应用。认证和授权流程 在认证和授权的过程中涉及的三方: 1、服务提供方,用户使用服务提供方来存储受保护的资源,如照片、视频、联系人列表。 2、用户,存认在服务提供方的受保护的资源的拥有者。 3、客户端(第三方应用),要访问服务提供方资源的第三方应用,通常是网...
阅读全文
摘要:Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。释义 Unicode,一种计算机字符编码,也称统一码、万国码。作用 能够使计算机实现跨语言、跨平台的文本转换及处理。Unicode编码系统可分为编码方式和实现方式两个层次编码方式 统一码的编码方式与ISO 10646的通用字符集概念相对应。目前实际应用的统一码版本对应于UCS-2,使用16位的编码空间。也就是每个字符占用个字节。这样理论上一共最多可以表示2...
阅读全文
摘要:“回车”(carriage return)和“换行”(line feed)这两个概念的来历: 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。 这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。 后...
阅读全文
摘要:Asp.net页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。了解生命周期非常重要,因为这样做您就能在生命周期的合适阶段编写代码,以达到预期效果。此外,如果您要开发自定义控件,就必须熟悉页生命周期,以便正确进行控件初始化,使用视图状态数据填充控件属性以及运行任何控件行为代码。(控件的生命周期基于页的生命周期,但是页引发的控件事件比单独的Asp.net页中可用的事件多)常规页生命周期阶段一般来说 ,页要经历下表概述的各个阶段。除了页面生命周期阶段以外,在请求前后还存在应用程序阶段,但是这些阶段并
阅读全文
摘要:usingSystem;usingSystem.Drawing;usingSystem.Drawing.Imaging;usingSystem.Text;usingSystem.Web;usingSystem.Web.SessionState;namespaceHttpModuleDemo{///<summary>///VerificationCode的摘要说明///</summary>publicclassVerificationCode:IHttpHandler,IRequiresSessionState{publicvoidProcessRequest(HttpC
阅读全文
摘要:第一步:创建PicHandler.cs文件,代码如下:usingSystem.Web;namespaceMyHttpModule{publicclassPicHandler:IHttpHandler{publicvoidProcessRequest(HttpContextcontext){stringstrFile=context.Server.MapPath(context.Request.FilePath);if(context.Request.UrlReferrer==null){context.Response.ContentType="image/JPEG";co
阅读全文
摘要:说明:(1)客户端浏览器向服务器发出一个Http请求,此请求会被inetinfo.exe进程截获,然后转交给aspnet_isapi.dll进程,接着它又通过Http Pipeline的管道,传送给aspnet_wp.exe这个进程,接下来就到了.net framework的HttpRunTime处理中心,处理完毕后就发送给用户浏览器。(2)当一个http请求被送入到HttpRuntime之后,这个Http请求会继续被送入到一个被称之为HttpApplication Factory的一个容器当中,而这个容器会给出一个HttpApplication实例来处理传递进来的http请求,而后这个Htt
阅读全文
摘要:HttpModule对HttpApplication实例进行处理,而HttpApplication有很多事件(对应不同的生命周期),这样就衍生出HttpModule内部事件机制和生命周期。一.HttpModule的事件BeginRequest 指示请求处理开始AuthenticateRequest 封装请求身份验证过程AuthorizeRequest 封装检查是否能利用以前缓存的输出页面处理请求的过程ResolveRequestCache 从缓存中得到相应时候触发AcquireRequestState 加载初始化Session时候触发PreRequestHandlerExecute 在Http
阅读全文
摘要:开发系统的时候,应用系统的权限控制是非常重要的一个部分。在Asp中,要实现权限的控制是比较麻烦的事件,因为我们必须要在每个需要控制权限的Asp页面添加权限控制代码,从而控制客户对页面的访问。这样带来的问题,除了编写大量的重复代码外,由于权限控制部分同业务处理部分的模块紧密耦合在一些,对权限控制模块的修改,往往又会带来大量的修改工作,甚至造成大量的Bug。 所以,我们现在需要将权限控制和业务处理模块进行解耦,使得两个部分可以独立开发和修改,而不会相互影响,或者,将影响减到最低。在Asp.net中,我们可以使用HttpModule实现。 publicclassRightChecker{pu...
阅读全文
摘要:HttpModule是如何工作的 当一个Http请求到达HttpModule时,整个Asp.net Framework系统还没有对这个Http请求做任何处理,也就是说些时对于Http请求来讲,HttpModule是一个Http请求的必经之路,所以可以在这个Http请求传递到真正的请求处理中心(HtpHandler)之前附加一些需要的信息在这个Http请求信息之上,或者针对截获的Http请求信息作一些额外的工作,或者在某些情况下干脆终止一些条件的Http请求,从而可以起到一个Filter过滤器的作用。 深入理解HttpModule 一个Http请求在HttpModule容器的传递过程中,...
阅读全文