1

我已经使用https://github.com/rustd/AspnetIdentitySample中给出的示例来创建自定义用户个人资料数据。身份会员角色ASP.NET 4.5 MVC添加基于角色的声明

但是,我不确定如何在注册后为新注册的用户分配角色。它看起来像它使用.net 4.5基于角色的声明。它还使用Code First - 迁移并创建必要的成员表,如角色,UserRoles。

我正在寻找将角色添加到角色表中,并将此角色分配给具有UserRoles表中的条目的新用户。

帮助真的很感激。

[HttpPost] 
     [AllowAnonymous] 
     [ValidateAntiForgeryToken] 
     public ActionResult Register(RegisterModel model) 
     { 
      if (ModelState.IsValid) 
      { 
       try 
       { 
        WebSecurity.CreateUserAndAccount(model.UserName, model.Password); 
        WebSecurity.Login(model.UserName, model.Password); 

         Roles.CreateRole("Role A");// add "Role A" 
         Roles.AddUserToRole(model.UserName, "Role A"); // user in role A 


        return RedirectToAction("Index", "Home"); 
       } 
       catch (MembershipCreateUserException e) 
       { 
        ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); 
       } 
      } 
      return View(model); 
     } 

回答

0

例如,如果你想创建角色和新用户添加到它,你可以进行如下修改您的注册方法是什么?确保该角色位于DefaultConnection的角色表中。我假设你正在制作他们在今年夏天BUILD之前发布的演示文稿? Andrey的回答依赖于旧的会员系统,我相信Web配置实用程序?

+0

之前就试过了。没有帮助。提供“角色管理器功能尚未启用”角色管理器功能尚未启用 描述:执行当前Web请求期间发生未处理的异常请查看堆栈跟踪以获取有关错误的更多信息及其起源的位置 异常详细信息:System.Configuration.Provider.ProviderException:角色管理器功能尚未启用 – user2690280

+0

@ user2690280仅向web.config添加

+0

尝试添加但是也没有帮助,如果你看一下示例项目(https://github.com/rustd/AspnetIdentitySample),有一个单独的成员数据库处理用户。提供者的东西 – user2690280

0

尝试IdentityConfig.Roles.AddUserToRole:

0

var rm = new RoleManager(new RoleStore(newApplicationDbContext()));

rm.Create(new IdentityRole(“Admin”));

rm.Create(new IdentityRole(“Finance”));

UserManager.AddToRole(user.Id,“Admin”);