|
言歸正傳,首先,貼上人家外國(guó)人的地址:http://www.codeproject.com/KB/web-security/formsroleauth.ASPx
有興趣的可以看看,沒(méi)興趣的直接下我的Demo,有點(diǎn)興趣的可以看下國(guó)人處理時(shí)有問(wèn)題的地方:
Global.asax
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if (HttpContext.Current.User != null)//如果當(dāng)前的http信息中存在用戶信息
{
if (HttpContext.Current.User.Identity.IsAuthenticated)//如果當(dāng)前用戶的身份已經(jīng)通過(guò)了驗(yàn)證
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
//如果當(dāng)前用戶身份是FormsIdentity類即窗體驗(yàn)證類,此類有個(gè)屬性能夠訪問(wèn)當(dāng)前用戶的驗(yàn)證票
FormsIdentity fi = (FormsIdentity)HttpContext.Current.User.Identity;//創(chuàng)建個(gè)FormsIdentity類,用他來(lái)訪問(wèn)當(dāng)前用戶的驗(yàn)證票
//獲得用戶的驗(yàn)證票
FormsAuthenticationTicket ticket = fi.Ticket;
//從驗(yàn)證票中獲得用戶數(shù)據(jù)也就是角色數(shù)據(jù)
string userData = ticket.UserData;
//把用戶數(shù)據(jù)用,分解成角色數(shù)組
string[] roles = userData.Split(',');
//重寫(xiě)當(dāng)前用戶信息,就是把角色信息也加入到用戶信息中
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(fi, roles);
}
}
}
}
最后,貼上國(guó)人的地址,其實(shí)文章寫(xiě)的不錯(cuò),只是這個(gè)事件沒(méi)寫(xiě)對(duì),其它的都不錯(cuò)
AspNet技術(shù):ASP.net Forms驗(yàn)證Demo第1/3頁(yè),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。