我有一个带有前端和后端的 MVC3 Web 应用程序。在后端,如果用户未登录(它检查会话),每个操作都受到 if..then..else 重定向到另一个操作的保护。它在没有 Windows 角色的情况下执行此操作。
我想知道是否可以创建一个属性来执行检查并将用户重定向到登录页面,而不必在每个操作中一遍又一遍地插入相同的代码?
编辑#1
我创建了一个基本控制器,我的管理控制器从该控制器派生,并根据 Virus 所说的添加了以下成员:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
try
{
if (Session["loggedIn"] == null || (bool)Session["loggedIn"] != true)
{
TempData["targetAction"] = ControllerContext.ParentActionViewContext.RouteData.Values["action"] + "/" + ControllerContext.ParentActionViewContext.RouteData.Values["controller"];
RedirectToRoute("Admin/Login");
}
}
catch (NullReferenceException)
{
RedirectToRoute("Admin/Login");
}
}
但是这段代码不起作用。有人可以告诉我有什么问题吗?