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

namespace IAuthenticationFilterTest.Filters
{
    public class LogOutputAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            log("OnActionExecuted", filterContext.RouteData);
        }

        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            log("OnActionExecuting", filterContext.RouteData);
        }

        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            log("OnResultExecuted", filterContext.RouteData);
        }

        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            log("OnResultExecuting", filterContext.RouteData);
        }

        private void log(string method, RouteData routeData)
        {
            var controller = routeData.Values["controller"];
            var action = routeData.Values["action"];
            string message = String.Format("{0}-{1}-{2}", method, controller, action);
            Debug.WriteLine(message, "Action Filter Log");
        }
    }
}

記得將這個屬性加到你的Action上,使用Visual Studio開偵錯模式,輸出視窗就能看到結果

不過這個是適合開發中,馬上能看到記錄,供除錯用,線上環境就不適合用這個了.

程式碼是參考ASP.NET MVC5 網站開發美學書上的範例,再透過實作可行.

arrow
arrow

    痞客興 發表在 痞客邦 留言(0) 人氣()