我正在编写一个新的 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");
}
}