导航

身份验证FormsAuthentication的使用

Posted on 2005-08-09 16:59  ehoole's blog  阅读(1682)  评论(2)    收藏  举报

除了用web.config文件来控制文件夹下的文件访问权限,如果单独的可匿名访问的页面需要身份验证则可以使用下面的方法。

  1. 登陆

1)自定义身份验证票据

//使用 cookie 名、版本、目录路径、发布日期、过期日期、持久性以及用户定义的数据初始化 FormsAuthenticationTicket 类的新实例。
FormsAuthenticationTicket ticket= new FormsAuthenticationTicket(version,name,System.DateTime.Now,System.DateTime.Now.AddMinutes(20),isPersistent,"userData string ",cookiePath);
HttpCookie cookie 
= new HttpCookie(FormsAuthentication.FormsCookieName,FormsAuthentication.Encrypt(ticket));
cookie.Path 
= FormsAuthentication.FormsCookiePath;
if(isPersistent)
{
cookie.Expires 
= ticket.Expiration;
}

Response.Cookies.Add(cookie);

2)使用系统的验证票据
//为给定的 userName、createPersistentCookie 和 strCookiePath 创建身份验证票,并将其附加到 Cookie 的传出响应集合。它不执行重定向。
FormsAuthentication.SetAuthCookies(userName,isPersistent,cookiePath);


2.  验证
     

            try
            
{
                FormsAuthenticationTicket ticket 
= FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value);
                
//已验证用户
            }

            
catch(Exception e)
            
{
                
//未验证用户;
            }

3. 退出

FormsAuthentication.SignOut();
Session.Abandon();