카테고리 없음

.NET MVC] 사용자 정의 필터 만들기

James Wetzel 2015. 3. 6. 14:15


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Web.Mvc;


namespace TOTO_OUTDOOR.Home.Controllers

{

    public class SignInOrSignInNotFilterAttribute : ActionFilterAttribute

    {

        public override void OnActionExecuting(ActionExecutingContext filterContext)

        {

            if (filterContext.RequestContext.HttpContext.Session["userID"] == null && filterContext.RequestContext.HttpContext.Request.Cookies["totooutdoor"] == null)

            {

                string returnUrl = filterContext.RequestContext.HttpContext.Request.UrlReferrer == null ?

                    System.Web.Configuration.WebConfigurationManager.AppSettings["HomeUrl"].ToString() : filterContext.RequestContext.HttpContext.Request.UrlReferrer.PathAndQuery;


                filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary { 

                    { "controller", "Account" }, 

                    { "action", "LoginNeed?returnUrl=" + returnUrl } 

                });                

                

                //StringBuilder javascript = new StringBuilder();

                //javascript.Append("<script type='text/javascript'>");

                ////javascript.Append("window.location.href = '" + returnUrl + "';");

                //javascript.Append("window.location.href = '/Home/Index';");

                //javascript.Append("alert('로그인 후 다시 시도해주세요.');");

                //javascript.Append("</script>");

                //filterContext.HttpContext.Response.Write(javascript);

                //filterContext.HttpContext.Response.End();

            }


            base.OnActionExecuting(filterContext);

        }

    }

}



728x90
반응형