用户注册到不同页面后如何根据角色重定向用户
我尝试在帐户 Controller 中实现以下内容,但没有成功。
// POST: /Account/Register
[AllowAnonymous]
[HttpPost]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);
if (createStatus == MembershipCreateStatus.Success)
{
FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
Roles.AddUserToRole(model.UserName, model.Role);
{
if (Roles.IsUserInRole("Student"))
{
return RedirectToAction("create, "Student");
}
else if (Roles.IsUserInRole("Teacher"))
{
return RedirectToAction("create, "Teacher");
}
return RedirectToAction("index", "Home");
}
List<SelectListItem> list = new List<SelectListItem>();
SelectListItem item;
foreach (String role in Roles.GetAllRoles())
{
item = new SelectListItem { Text = role, Value = role };
list.Add(item);
}
ViewBag.roleList = (IEnumerable<SelectListItem>)list;
ModelState.AddModelError("", ErrorCodeToString(createStatus));
// If we got this far, something failed, redisplay form
return View(model);
}
}
}
欢迎任何帮助或建议
最佳答案
创建了一个新 View 并添加了以下代码,
@{
ViewBag.Title = "CreateProfilePage";
}
<h2>CreateProfilePage</h2>
@if (User.IsInRole("Student"))
{
<div> @Html.ActionLink("Create Landlord Profile", "Create", "Student") </div>
}
@if (User.IsInRole("Teacher"))
{
<div> @Html.ActionLink("Create Teacher Profile", "Create", "Teacher") </div>
帐户 Controller 中寄存器的重定向也已更改为新 View 。
// POST: /Account/Register
[AllowAnonymous]
[HttpPost]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);
if (createStatus == MembershipCreateStatus.Success)
{
FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
Roles.AddUserToRole(model.UserName, model.Role);
/////changed here/// return RedirectToAction("CreateProfilePage", "Property");
}
else
{
List<SelectListItem> list = new List<SelectListItem>();
SelectListItem item;
foreach (String role in Roles.GetAllRoles())
{
item = new SelectListItem { Text = role, Value = role };
list.Add(item);
}
ViewBag.roleList = (IEnumerable<SelectListItem>)list;
ModelState.AddModelError("", ErrorCodeToString(createStatus));
}
}
代码仅根据登录用户的角色显示一个链接。
关于asp.net-mvc-3 - 注册后根据角色重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10323775/