Asp.net mvc 3 根据角色在注册后重定向
如何在用户注册到不同页面后根据角色重定向用户 我已尝试在帐户控制器中实现以下内容,但没有任何运气Asp.net mvc 3 根据角色在注册后重定向,asp.net-mvc-3,entity-framework-4,Asp.net Mvc 3,Entity Framework 4,如何在用户注册到不同页面后根据角色重定向用户 我已尝试在帐户控制器中实现以下内容,但没有任何运气 // POST: /Account/Register [AllowAnonymous] [HttpPost] public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) {
// 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);
}
}
}
//POST:/Account/Register
[异名]
[HttpPost]
公共操作结果寄存器(RegisterModel模型)
{
if(ModelState.IsValid)
{
//尝试注册用户
成员资格createStatus createStatus;
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(“学生”))
{
返回重定向到操作(“创建”,“学生”);
}
else if(Roles.IsUserInRole(“教师”))
{
返回重定向到操作(“创建”、“教师”);
}
返回重定向到操作(“索引”、“主页”);
}
列表=新列表();
选择ListItem项目;
foreach(Roles.GetAllRoles()中的字符串角色)
{
item=new SelectListItem{Text=role,Value=role};
列表。添加(项目);
}
ViewBag.roleList=(IEnumerable)列表;
AddModelError(“,ErrorCodeToString(createStatus));
//如果我们走到这一步,有些东西失败了,重新显示形式
返回视图(模型);
}
}
}
欢迎任何帮助或建议创建了一个新视图,并添加了以下代码
@{
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>
@{
ViewBag.Title=“CreateProfilePage”;
}
CreateProfilePage
@if(User.IsInRole(“学生”))
{
@ActionLink(“创建房东档案”、“创建”、“学生”)
}
@if(User.IsInRole(“教师”))
{
@ActionLink(“创建教师档案”、“创建”、“教师”)
此外,帐户控制器中寄存器的重定向也更改为新视图
// 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));
}
}
//POST:/Account/Register
[异名]
[HttpPost]
公共操作结果寄存器(RegisterModel模型)
{
if(ModelState.IsValid)
{
//尝试注册用户
成员资格createStatus createStatus;
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);
/////此处更改///返回重定向到操作(“CreateProfilePage”、“Property”);
}
其他的
{
列表=新列表();
选择ListItem项目;
foreach(Roles.GetAllRoles()中的字符串角色)
{
item=new SelectListItem{Text=role,Value=role};
列表。添加(项目);
}
ViewBag.roleList=(IEnumerable)列表;
AddModelError(“,ErrorCodeToString(createStatus));
}
}
代码仅显示一个链接,具体取决于登录用户的角色。您使用的是哪种成员资格提供商?Windows?自定义?