using System.Web.Routing;
//重寫System.Web.Routing中Initialize方法
protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
//脫離權限控制的url
if (Request.RawUrl.ToLower().Contains("url1") || Request.RawUrl.ToLower().Contains("url2"))
{
}
//是否驗證用戶
else if (User.Identity.IsAuthenticated)
{
//通過 User.Identity.Name 查詢數據庫獲取用戶信息實體CurrentUser
// User.Identity.Name是用戶登陸的時候保存的值:UserFlag
//FormsAuthentication.SetAuthCookie(UserFlag, createPersistentCookie);
ViewBag.CurrentUser = CurrentUser;
if (CurrentUser == null)
{
//如果用戶不存在,跳轉登陸界面
requestContext.HttpContext.Response.Redirect("LoginUrl");
}
if (requestContext.HttpContext.Request.HttpMethod == "GET")
{
//獲取當前請求的url信息=》獲取controller名稱
var controllername = requestContext.RouteData.Values["controller"].ToString().ToLower();
//1.驗證用戶擁有的url權限
//2.跳轉用戶訪問的url 或者 設置一個session值在前端框架中跳轉
//3.操作session
}
}
else
{
requestContext.HttpContext.Response.Redirect("LoginUrl");
}
}