学习Froms验证(二)

8 篇文章 0 订阅

由于前面发表的《学习Froms验证》里面的内容我理解,但是不是很熟悉于是找了些资料学习一下学习Froms验证

   System.Web.Security命名空间的FormsAuthentication类提供了很多通过forms authentication系统登陆和注销的函数

FormsAuthentication.GetAuthCookie(username, persistCookie)——为提供的username创建一个表单认证票据,接下来该方法创建并返回一个HttpCookie对象,该对象包含了票据的内容.如果persistCookie为true,则创建一个"持久性"的cookie.

FormsAuthentication.SetAuthCookie(username, persistCookie)——调用GetAuthCookie(username, persistCookie) 方法来生成表单认证票据.该方法将GetAuthCookie()方法返回的cookie添加到Cookies collection里(我们假定使用的是基于cookie的forms authentication.不然,该方法将调用一个内部的类来处理无Cookie的票据逻辑)

FormsAuthentication.RedirectFromLoginPage(username, persistCookie)——该方法调用SetAuthCookie(username, persistCookie),然后将用户再导航到恰当的页面.

这里当用户输入一个有效的证书时,我前面提到过要将他们返回到一个恰当的页面.那么什么是恰当的页面呢?我们知道,当用户访问一个未被授权的页面时,Forms Authentication自动将其导航到登陆页面,登陆成功后,就在查询字符串里的ReturnUrl参数里包含该请求的URL.那就是说,如果用户试图访问ProtectedPage.aspx页面,但其又未被授权,那么Forms Authentication就会将他导航到

Login.aspx?ReturnUrl=ProtectedPage.aspx

 

我们可以通过HttpContext object的User属性来判断当前登陆用户的身份.HttpContext object对象描述了当前请求的信息,当然它也可以表示这些常见的ASP.NET objects:Response,Request,以及Session等.该User属性描述了当前HTTP request的security context,并且执行IPrincipal接口.

User属性是由FormsAuthenticationModule来设置的.具体来说,当FormsAuthenticationModule在请求里发现了一个票据,它就创建一个新的GenericPrincipal object对象并赋值给该User属性.

 

Principal objects对象(比如GenericPrincipal)提供了用户身份(identity)以及所属角色的信息。IPrincipal接口定义了2个成员:

.IPrincipal——返回一个布尔值的方法,指出该principal是否属于指定的角色.

.Identity——该属性返回一个执行IIdentity接口的对象.而IIdentity接口定义了3个属性:AuthenticationType, IsAuthenticated,以及Name.

当使用forms authentication时候,将会为GenericPrincipal的Identity属性创建一个FormsIdentity object对象.该FormsIdentity类的AuthenticationType属性总是返回字符串“Forms” ,IsAuthenticated属性总是返回true,而Name属性返回的就是创建票据时指定的username;除了这3个属性外,FormsIdentity还有一个Ticket属性,通过该属性我们可以访问潜在的票据 .该Ticket属性返回的是一个FormsAuthenticationTicket类型的对象.该类型有诸如Expiration, IsPersistent, IssueDate, Name等的属性.

这里有两个控件是与这里的机制是对应的LoginView,通过验证就是LoggedInTemplate没有通过就是AnonymousTemplate

LoginStatus验证后可以显示出注销,没有验证选择登录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值