-1
與asp.net中的角色有關的問題。所以我目前正在嘗試爲我的網站設置角色。我使用這段代碼來製作formsAuthentication票據。asp.net,未通過表單身份驗證分配的角色
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, //Ticket version
p.firstName, //username
DateTime.Now,
DateTime.Now.AddMinutes(30),
false, //true for persistant user cookie
"Admin",
FormsAuthentication.FormsCookiePath);
string hashCookies = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashCookies);
Response.Cookies.Add(cookie);
Response.Redirect("Default.aspx");
您可以看到我將角色「admin」添加到此人。頁。是一個對象,firstname是一個字符串。在下一段代碼中,我們檢查了他進入管理員站點時是否具有管理員角色。如果他不是管理員,他必須退回。
if (User.IsInRole("Admin") != true)
{
Response.Redirect("Default.aspx");
}
奇怪的是,它將我返回到默認頁面?任何人都知道答案?
PS。我知道你必須在web.config文件的不同位置設置授權。但是,如果他甚至沒有得到這個角色,那麼現在並不重要。
我跟着鏈接。不知道有一個配置管理員。所以我添加了我需要的角色。但它仍然沒有工作。然後我將它添加到我的登錄Roles.AddUserToRole(p.firstName,p.userRole); - 哪個工作得很好。所以他們現在真的得到了角色。爲什麼它不起作用,首先將它們添加到票據中,我不知道。此外,它似乎有HttpContext.Current.User.IsInRole和User.IsInRole之間的區別。 – 2011-05-05 08:34:58
哦,並感謝你的cacheRolesInCookie我認爲它幫助了很多以及:) – 2011-05-05 08:37:29
和順便說一句。他們在配置管理器中進行了更改,他們最終在哪裏?它似乎沒有對配置文件做任何事情。 – 2011-05-05 08:42:33