网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET Forms身份认证

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/05
le执行授权检查。

在登录与认证的实现中,FormsAuthenticationTicket和FormsAuthentication是二个核心的类型,前者可以认为是一个数据结构,后者可认为是处理前者的工具类。

UrlAuthorizationModule是一个授权检查模块,其实它与登录认证的关系较为独立,因此,如果我们不使用这种基于用户名与用户组的授权检查,也可以禁用这个模块。

由于Cookie本身有过期的特点,然而为了安全,FormsAuthenticationTicket也支持过期策略,不过,ASP.NET的默认设置支持FormsAuthenticationTicket的可调过期行为,即:slidingExpiration=true 。这二者任何一个过期时,都将导致登录状态无效。

FormsAuthenticationTicket的可调过期的主要判断逻辑由FormsAuthentication.RenewTicketIfOld方法实现,代码如下: 498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' alt="" src="/uploadfile/201301/5/11151246337.png" />

  1. public static FormsAuthenticationTicket RenewTicketIfOld(FormsAuthenticationTicket tOld)  
  2. {  
  3.     // 这段代码是意思是:当指定的超时时间逝去大半时将更新FormsAuthenticationTicket对象。  
  4.  
  5.     if( tOld == null )   
  6.         return null;  
  7.       
  8.     DateTime now = DateTime.Now;  
  9.     TimeSpan span = (TimeSpan)(now - tOld.IssueDate);  
  10.     TimeSpan span2 = (TimeSpan)(tOld.Expiration - now);  
  11.     if( span2 > span )   
  12.         return tOld;  
  13.       
  14.     return new FormsAuthenticationTicket(tOld.Version, tOld.Name,  
  15.         now, now + (tOld.Expiration - tOld.IssueDate),  
  16.         tOld.IsPersistent, tOld.UserData, tOld.CookiePath);  

Request.IsAuthenticated可以告诉我们当前请求是否已经过身份验证,我们来看一下这个属性是如何实现的:

  1. public bool IsAuthenticated  
  2. {  
  3.     get 
  4.     {  
  5.         return (((this._context.User != null)   
  6.             && (this._context.User.Identity != null))   
  7.             && this._context.User.Identity.IsAuthenticated);  
  8.     }  

从代码可以看出,它的返回结果基本上来源于对Context.User的判断。
另外,由于User和Identity都是二个接口类型的属性,因此,不同的实现方式对返回值也有影响。

由于可能会经常使用HttpContext.User这个实例属性,为了让它能正常使用, DefaultAuthenticationModule会在ASP.NET管线的PostAuthenticateRequest事件中检查此属性是否为null,如果它为null,DefaultAu

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号