我已使用https://github.com/rustd/AspnetIdentitySample中提供的示例创建自定义用户个人资料数据。
但是,我不确定如何在注册时为新注册的用户分配角色。看起来它使用.net 4.5基于声明的角色。它还使用Code First - 迁移并创建必要的Membership表,如Roles,UserRoles。
我希望为Roles表添加一个新角色,并将此角色分配给新用户,并在UserRoles表中输入。
非常感谢帮助。
答案 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”);