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

Entity framework 4 身份成员角色ASP.NET 4.5 MVC添加基于声明的角色,entity-framework-4,code-first,claims-based-identity,asp.net-mvc-5,Entity Framework 4,Code First,Claims Based Identity,Asp.net Mvc 5,我使用中给出的示例创建了自定义用户配置文件数据 但是,我不知道如何在注册时为新注册的用户分配角色。它似乎使用了基于.net 4.5声明的角色。它还使用代码优先迁移,并创建必要的成员表,如Roles、UserRoles 我希望向Roles表中添加一个新角色,并将此角色分配给一个新用户,并在UserRoles表中添加一个条目 非常感谢您的帮助。例如,如果您想创建角色并向其中添加新用户,您可以修改您的注册方法,如下所示: [HttpPost] [AllowAnonymous]

我使用中给出的示例创建了自定义用户配置文件数据

但是,我不知道如何在注册时为新注册的用户分配角色。它似乎使用了基于.net 4.5声明的角色。它还使用代码优先迁移,并创建必要的成员表,如Roles、UserRoles

我希望向Roles表中添加一个新角色,并将此角色分配给一个新用户,并在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);
        }

是否尝试IdentityConfig.Roles.AddUserToRole?确保该角色位于DefaultConnection的角色表中。我想你正在制作他们在今年夏天构建之前的会议上发布的演示?Andrey的答案依赖于旧的会员制,我相信是web配置实用程序?

var rm=new RoleManagernew rolestorerenewapplicationdbcontext

rm.createnewidentityroleadmin

rm.Createnew IdentityRoleFinance


UserManager.AddToRoleuser.Id,Admin

我早就试过了。没用。“角色管理器功能尚未启用”角色管理器功能尚未启用。描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。异常详细信息:System.Configuration.Provider.ProviderException:角色管理器功能尚未启用。@user2690280仅添加到web.Config已尝试添加,但也没有帮助。如果您查看示例项目,则有一个单独的成员数据库来处理用户。所以,成员资格提供程序肯定有问题。@user2690280如果数据库中仍然没有asp成员资格表,请执行以下操作:将Aspnet成员资格表添加到数据库中。导航到向导C:\Windows\Microsoft.NET\Framework[Framework version]\aspnet\u regsql并启动它。它将运行特殊的wizzard,这有助于添加表。