.NET MVC] 사용자 정의 필터 만들기
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);
}
}
}