我寫了一個控制器,象下面這樣:如何在ASP.NET MVC中爲HttpContext.User分配一個值?
public class AccountController : Controller
{
public ActionResult Login(/*---*/)
{
GenericIdentity identity = new GenericIdentity("userName");
GenericPrincipal principal = new GenericPrincipal(identity, new string[] { "role1", "role2" });
this.HttpContext.User = principal;
/*---*/;
}
}
登錄後,我可以通過User.Identity.Name其他控制器獲得用戶名。 但User.IsInRole(「role1」)總是返回false。
我怎麼能值分配給用戶,我不想用會員...
我不想使用會員資格。 而我不明白關於使用cookie,爲什麼不保持它在服務器端像會議? – ldp615 2010-03-09 13:35:49
嗯,首先 - 當你決定使用ASP.NET時,你想要的重要性是有限的。因此,您必須接受ASP.NET人員的設計決策。抱歉。第二... Cookie,以便用戶可以保持登錄時間長於會話持續時間。那很簡單。我討厭的只能是一次又一次地登錄到同一個網站。所以,最好把它放到一個單獨的cookie中,這樣你就可以決定這個保持有效的時間。請注意,您不需要在那裏設置組 - 用戶在數據庫中的標識就足夠了,您可以始終從中完成整個對象的脫水。 – TomTom 2010-03-09 13:50:16
感謝您的評論,我從中學到了很多! – ldp615 2010-03-11 04:17:53