身份成员角色ASP.NET 4.5 MVC添加基于声明的角色

时间:2013-08-16 17:52:15

标签: entity-framework-4 code-first claims-based-identity asp.net-mvc-5

我已使用https://github.com/rustd/AspnetIdentitySample中提供的示例创建自定义用户个人资料数据。

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

我希望为Roles表添加一个新角色,并将此角色分配给新用户,并在UserRoles表中输入。

非常感谢帮助。

3 个答案:

答案 0 :(得分:0)

例如,如果要创建角色并向其添加新用户,可以按如下方式修改Register方法:

[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);
        }

答案 1 :(得分:0)

试试IdentityConfig.Roles.AddUserToRole?确保该角色位于DefaultConnection的Role表中。我假设你正在处理他们在今年夏天START之前在那次会议上发布的演示?安德烈的回答依赖于旧的会员系统,我相信使用网络配置工具吗?

答案 2 :(得分:0)

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

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

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

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