我使用了https://github.com/rustd/AspnetIdentitySample中给出的示例来创建自定义用户配置文件数据。
但是,我不确定如何在注册时为新注册的用户分配角色。看起来它使用 .net 4.5 基于声明的角色。它还使用 Code First - 迁移并创建必要的成员表,如角色、用户角色。
我希望向 Roles 表添加一个新角色,并将该角色分配给一个新用户,并在 UserRoles 表中添加一个条目。
非常感谢您的帮助。
我使用了https://github.com/rustd/AspnetIdentitySample中给出的示例来创建自定义用户配置文件数据。
但是,我不确定如何在注册时为新注册的用户分配角色。看起来它使用 .net 4.5 基于声明的角色。它还使用 Code First - 迁移并创建必要的成员表,如角色、用户角色。
我希望向 Roles 表添加一个新角色,并将该角色分配给一个新用户,并在 UserRoles 表中添加一个条目。
非常感谢您的帮助。
var rm = new RoleManager(new RoleStore(newApplicationDbContext()));
rm.Create(new IdentityRole("Admin"));
rm.Create(new IdentityRole("Finance"));
UserManager.AddToRole(user.Id, "Admin");
例如,如果你想创建角色并添加新用户,你可以修改你的注册方法如下:
[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 的 Role 表中。我假设您正在研究他们在今年夏天 BUILD 之前在那次会议上发布的演示?我相信安德烈的答案依赖于旧的会员系统,带有网络配置实用程序?