国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Asp.Net基于forms的驗證機制

2019-11-17 04:27:20
字體:
來源:轉載
供稿:網友

  項目需要研究了下asp.net的基于forms的驗證機制 

  構建基于forms的驗證機制過程如下:
    1,設置IIS為可匿名訪問和asp.net web.config中設置為form驗證
    2,檢索數據存儲驗證用戶,并檢索角色(如果不是基于角色可不用)

    簡單無role方式:

    使用FormsAuthenticationTicket創建一個Cookie并回發到客戶端,并存儲 角色到票中,如:
     FormsAuthentication.SetAuthCookie(Username,true | false)
    cookies保存時間:
    HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=DateTime.Now.AddDays(1)

    如果需要存儲角色方式:  view plaincopy to clipboardPRint?
 FormsAuthenticationTicket authTicket = new   
 FormsAuthenticationTicket(   
 1, // version   
 txtUserName.Text, // user name   
 DateTime.Now, // creation   
 DateTime.Now.AddMinutes(20),// Expiration   
 false, // Persistent   
 roles ); // User data  
    //roles是一個角色字符串數組   
 string encryptedTicket = FormsAuthentication.Encrypt(authTicket); //加密  

 FormsAuthenticationTicket authTicket = new
 FormsAuthenticationTicket(
 1, // version
 txtUserName.Text, // user name
 DateTime.Now, // creation
 DateTime.Now.AddMinutes(20),// Expiration
 false, // Persistent
 roles ); // User data
    //roles是一個角色字符串數組
 string encryptedTicket = FormsAuthentication.Encrypt(authTicket); //加密    存入Cookie view plaincopy to clipboardprint?
HttpCookie authCookie =   
new HttpCookie(FormsAuthentication.FormsCookieName,   
encryptedTicket);   
 
Response.Cookies.Add(authCookie);  

 HttpCookie authCookie =
 new HttpCookie(FormsAuthentication.FormsCookieName,
 encryptedTicket);

 Response.Cookies.Add(authCookie);    在application_AuthenticateRequest事件中處理程序中(Global.asax)中,使用票創建IPrincipal對象并存在HttpContext.User中代碼: view plaincopy to clipboardprint?
protected void Application_AuthorizeRequest(object sender, System.EventArgs e)  
{  
 HttpApplication App = (HttpApplication) sender;  
 HttpContext Ctx = App.Context ; //獲取本次Http請求相關的HttpContext對象  
 if (Ctx.Request.IsAuthenticated == true) //驗證過的用戶才進行role的處理  
 {  
 FormsIdentity Id = (FormsIdentity)Ctx.User.Identity ;  
 FormsAuthenticationTicket Ticket = Id.Ticket ; //取得身份驗證票  
 string[] Roles = Ticket.UserData.Split (',') ; //將身份驗證票中的role數據轉成字符串數組  
 Ctx.User = new GenericPrincipal (Id, Roles) ; //將原有的Identity加上角色信息新建一個GenericPrincipal表示當前用戶,這樣當前用戶就擁有了role信息  
 }  

protected void Application_AuthorizeRequest(object sender, System.EventArgs e)
{
 HttpApplication App = (HttpApplication) sender;
 HttpContext Ctx = App.Context ; //獲取本次Http請求相關的HttpContext對象
 if (Ctx.Request.IsAuthenticated == true) //驗證過的用戶才進行role的處理
 {
 FormsIdentity Id = (FormsIdentity)Ctx.User.Identity ;
 FormsAuthenticationTicket Ticket = Id.Ticket ; //取得身份驗證票
 string[] Roles = Ticket.UserData.Split (',') ; //將身份驗證票中的role數據轉成字符串數組
 Ctx.User = new GenericPrincipal (Id, Roles) ; //將原有的Identity加上角色信息新建一個GenericPrincipal表示當前用戶,這樣當前用戶就擁有了role信息
 }
}   需要對某些頁面進行角色控制,有兩種方法:
    1、web.config中加 view plaincopy to clipboardprint?
<location path="EditPost.aspx">   
<system.web>   
<authorization>   
<allow roles="RoleName" />   
<deny users="?" />   
</authorization>   
</system.web>   
</location>  

 <location path="EditPost.aspx">
 <system.web>
 <authorization>
 <allow roles="RoleName" />
 <deny users="?" />
 </authorization>
 </system.web>
 </location>     2、把只能是某種角色訪問的文件放在同一目錄下,在此目錄下添加一個web.config view plaincopy to clipboardprint?
<configuration>   
<system.web>   
<authorization>   
<allow roles="RoleName" />   
<deny users="*" />   
</authorization>   
</system.web>   
</configuration>  

 <configuration>
 <system.web>
 <authorization>
 <allow roles="RoleName" />
 <deny users="*" />
 </authorization>
 </system.web>
 </configuration>     說明:子目錄的web.config設置優先于父目錄的web.config設置

以上參考:http://m.survivalescaperooms.com/kwklover/archive/2004/06/29/19455.aspx
     http://www.donews.net/robinblood/archive/2005/04/30/358041.aspx


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平南县| 高阳县| 阳曲县| 山阳县| 新建县| 蒲江县| 利辛县| 东光县| 迁西县| 鹤岗市| 周口市| 那坡县| 洪湖市| 全椒县| 甘泉县| 兰考县| 韩城市| 龙井市| 舞钢市| 古蔺县| 西青区| 长宁县| 郧西县| 安徽省| 巴林左旗| 华池县| 湖州市| 沙田区| 庄河市| 正安县| 虹口区| 八宿县| 双流县| 安乡县| 即墨市| 乡城县| 贞丰县| 林周县| 文登市| 清镇市| 乌兰察布市|