向用户添加角色

时间:2015-02-08 12:05:16

标签: c# asp.net-mvc role

我有这些代码在使用管理员帐户添加新帐户时有效:

[Authorize(Roles = "Owner")]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(UserProfile userprofile)
{
    if (ModelState.IsValid)
    {
        db.UserProfiles.Add(userprofile);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(userprofile);
}

但是当我添加这行代码时

Roles.AddUserToRole(userprofile.UserId.ToString(), "4");

我收到错误:

  

未找到具有名称" 11"。

的用户

我该怎么办?提前谢谢!

2 个答案:

答案 0 :(得分:1)

您应该在此方法上使用UserName而不是UserIdcheck MSDN

public static void AddUserToRole(
    string username,
    string roleName
)

Notise username?也可能是您应该使用roleName而不是RoleId

答案 1 :(得分:0)

找到答案,这很简单。首先,您需要调用您的数据库,只需添加以下代码:

  webpages_UsersInRoles s = new webpages_UsersInRoles();
  var userid = WebSecurity.GetUserId(model.UserName);
  s.RoleId = roles;
  s.UserId = userid;
  db2.webpages_UsersInRoles.Add(s);
  db2.SaveChanges();

这些是我在上述问题中缺乏的代码。感谢那些帮助过的人!