【发布时间】:2016-10-16 09:58:59
【问题描述】:
我已向 ApplicationUserRole 添加了一个附加属性,如下所示:
public class ApplicationUserRole : IdentityUserRole<int>
{
public string RoleAssigner { get; set; }
}
现在我要为用户分配一个角色,如下所示:
[HttpPost]
public ActionResult Create(UserRoleViewModel userRoleViewModel)
{
if (ModelState.IsValid)
{
using (var context = new ApplicationDbContext())
{
var userRole = new ApplicationUserRole
{
UserId = userRoleViewModel.UserId,
RoleId = userRoleViewModel.RoleId,
RoleAssigner = userRoleViewModel.RoleAssigner
};
context.ApplicationUserRoles.Add(userRole);
context.SaveChanges();
return RedirectToAction("Index");
}
}
return View(userRoleViewModel);
}
一切正常!!
在添加额外的“RoleAssigner”属性之前,我可以使用 AddToRoles() 方法为用户分配一个角色,方法如下:
[HttpPost]
public ActionResult Create(UserRoleViewModel userRoleViewModel)
{
if (ModelState.IsValid)
{
UserManager.AddToRoles(userRoleViewModel.Id, userRoleViewModel.RoleName);
return RedirectToAction("Index");
}
return View(userRoleViewModel);
}
我的问题是:在添加像“RoleAssigner”这样的附加属性后,有没有办法使用 AddToRoles() 方法还将为数据库中的 "RoleAssigner" 列插入额外的 "RoleAssigner" 值。
【问题讨论】:
标签: c# asp.net entity-framework asp.net-identity