我写了一个控制器,象下面这样:如何在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