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