我实现了自定义角色和memberip提供程序。 我有问题,当用户获得角色??? 我有类似的东西:
if (provider.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);
}
有效。 但是,在某些控制器中,我使用:
if (!User.IsInRole("user"))
return RedirectToAction("Index", "Home");
并且它总是错误的,就像用户没有任何角色一样。
最后,当用户获得此角色时,以及它们存储在哪里????
答案 0 :(得分:2)
IsInRole
方法查询role provider以确定当前登录的用户是否具有该角色。使用默认模板创建新的ASP.NET MVC应用程序时,它使用SQL角色提供程序,这意味着它将角色存储在数据库中。因此,当您创建新用户时,您可以为其分配角色,当您使用User.IsInRole
时,它将查询数据库。这是一个blog post,详细介绍了这一点。