1.在項目里創建UserRoleAttribute類
2.UserRoleAttribute代碼
public class UserRoleAttribute : System.Web.Mvc.ActionFilterAttribute { public override void OnActionExecuting(System.Web.Mvc.ActionExecutingContext filterContext) { string controller = filterContext.RouteData.Values["controller"].ToString();//控制器名稱 if (controller == "Login") { base.OnActionExecuting(filterContext); return; } string User = SessionHelper.Get("User"); if (string.IsNullOrEmpty(User)) { //這里構造了一個心得ActionResult filterContext.Result = new System.Web.Mvc.RedirectResult("/Login/Index"); return; } else { base.OnActionExecuting(filterContext); return; } } }
3.新建SessionHelper類
4.SessionHelper.Get代碼
public static string Get(string strSessionName) { if (HttpContext.Current.Session[strSessionName] == null) { return null; } else { return HttpContext.Current.Session[strSessionName].ToString(); } }
5.在/App_Start/FilterConfig.cs中添加過濾器
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { //全局異常處理記錄 filters.Add(new HandleErrorAttribute()); //全局權限訪問控制 filters.Add(new Filters.UserRoleAttribute()) }
通過以上可以實現判斷是從登錄界面進入系統的還是從網址欄直接進入系統的,我自己的是通過判斷Session["UserData"]。
Session["UserData"]只有從登錄界面登錄才會有值。
