1. 程式人生 > >利用篩選器判斷是否登入

利用篩選器判斷是否登入

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MonkeyBlog.Filters
{
    public class IsLoginFilter:ActionFilterAttribute
    {
        // 摘要:
        //     在執行操作方法後由 ASP.NET MVC 框架呼叫。
        //
        // 引數:
        //   filterContext:
        //     篩選器上下文。
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {

        }
        //
        // 摘要:
        //     在執行操作方法之前由 ASP.NET MVC 框架呼叫。
        //
        // 引數:
        //   filterContext:
        //     篩選器上下文。
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //得到操作方法的名稱
            string action = filterContext.ActionDescriptor.ActionName;

            //得到控制器名稱
            string controllername = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;

            //得到網完整路徑
            string url = filterContext.HttpContext.Request.RawUrl;

            //判斷是否在登陸頁面
            if (action.ToLower() == "home" && controllername.ToLower() == "index")
            {
                return;
            }
            else
            {
                //判斷是否存在session(是否登陸成功)
                if (filterContext.RequestContext.HttpContext.Session["ULogin"]==null)
                {
                    filterContext.Result = new RedirectResult("/home/index");
                }
            }
        }
    }
}