asp.net-mvc-3 - 注册后根据角色重定向

标签 asp.net-mvc-3 entity-framework-4

用户注册到不同页面后如何根据角色重定向用户

我尝试在帐户 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/

相关文章:

c# - Entity Framework 线程安全

c# - System.Data.Objects.MaterializedDataRecord 不包含属性

sql-server-2005 - Entity Framework 4 未关闭 sql server 2005 分析器中的连接

c# - 如何使用 Lambda 和 EF 返回列表而不是对象

asp.net - 无法在文本框中键入 double

asp.net-mvc-3 - 同一页面中的两个 ValidationSummary

asp.net - MVC中jQuery对话框中表单的常用方法

c# - 将 HttpPostedFileBase 传递给 Controller ​​方法

css - 编写非常大的级联样式表 (CSS) 文件的最佳方法是什么

entity-framework - Entity Framework –使用外键插入多个表