我正在编写一个新的 asp.net mvc4 Web 应用程序,它由一个公共环境和一个单独的管理环境组成,现在我想知道这样做的最佳实践是什么。
我希望管理员登录 mysite.com/admin。
我正在编写一个新的 asp.net mvc4 Web 应用程序,它由一个公共环境和一个单独的管理环境组成,现在我想知道这样做的最佳实践是什么。
我希望管理员登录 mysite.com/admin。
可以像 bluetoff 所写的那样组织 - 添加区域。但是,如果您的管理部分不是很复杂,我更喜欢创建单独的控制器“Admin”并使用属性限制对它的访问:
[Authorize(Roles = "admin")]
public class AdminController : Controller
如果用户是角色“admin”,则在 LogOn 方法中添加重定向到 AdminController:
public ActionResult LogOn(LogOnModel model)
        {
            if (ModelState.IsValid)
            {
                if (Membership.ValidateUser(model.UserName, model.Password))
                {
                    FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
                    if (Roles.IsUserInRole(model.UserName, "admin"))
                    {
                        return Redirect("Index", "Admin");
                    }
                    else
                    {
                        return RedirectToAction("Index", "Home");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Error");
                }
            }