我正在创建一个MVC3应用程序,其中用户可以是管理员或数据条目,因此我需要利用MVC提供的用户身份验证中的角色。所以在我的注册表格中我添加了
<%=
Html.DropDownList("RoleName", new SelectListItem[]{
new SelectListItem{ Text= "Admin", Value="admin"},
new SelectListItem{ Text= "Data Entry", Value="data"}
}) %>
我按如下方式修改了寄存器控制器:
if (createStatus == MembershipCreateStatus.Success)
{
Roles.AddUserToRole(model.UserName, "RoleName");
FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
return RedirectToAction("Index", "Home");
}
现在,当我注册时,我收到以下错误: 找不到角色。
谢谢...
答案 0 :(得分:0)
查看Roles.AddUserToRole()
方法here的定义。您正在为第二个参数硬编码“RoleName”,该参数应该是添加用户的角色。
您要做的是从DropDownList
中检索所选值,并在Roles.AddUserToRole()
方法调用中使用该字符串。