我有这些代码在使用管理员帐户添加新帐户时有效:
[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"。
的用户
我该怎么办?提前谢谢!
答案 0 :(得分:1)
您应该在此方法上使用UserName
而不是UserId
,check 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();
这些是我在上述问题中缺乏的代码。感谢那些帮助过的人!