我正在使用SimpleMembership开发MVC4应用程序。我有一个表 - “userInfo”,其中我存储用户的信息,如姓名,电子邮件,地址,电话,角色等。当我注册用户时,数据存储在此表和webpages_Membership中。其他成员资格表(OAuthMembership,Roles,UserInRoles)中不存储任何数据。
当我登录用户时,使用以下方式验证:
if (ModelState.IsValid && WebSecurity.Login(Model.Name, Model.Password, false))
它返回“True”但在此之后,我需要获得注册用户的角色。
在SimpleMembership中,“Roles and UserInRoles”表是否提供注册用户角色,还是可以查询“userInfor”表并从此表中获取角色。
请咨询
先谢谢
答案 0 :(得分:3)
获取所有可用角色,假设您已启用角色并添加至少一个..
var roles = (SimpleRoleProvider)Roles.Provider;
var allRoles = roles.GetAllRoles();
获取特定用户的角色。
var userRoles = roles.GetRolesForUser("specificusername");
ref MSDN
简单会员资格不附带角色的任何开箱即用管理页面。您可以自己创建它们,也可以通过code / sql / ef等直接管理它们。
代码示例......
检查并创建管理员角色:
if (!Roles.RoleExists("Admin"))
Roles.CreateRole("Admin");
在创建时将用户添加到角色:
if (!Roles.GetRolesForUser("specificusername").Contains("Admin"))
Roles.AddUsersToRoles(new[] {"specificusername"}, new[] {"Admin"});
答案 1 :(得分:0)
用户登录后,您可以Roles.GetRolesForUser Method用户
获取当前登录用户所在角色的列表。
或者,如果您想检查当前用户是否处于指定角色,您可以使用Roles.IsUserInRole Method