demoshop

demo, trying to be the best_

最近因為案子有資安的需求,所以某些頁面一定要使用 SSL 來連結,因此利用了 ActionFilter 來做一個很簡單的解法。

注意事項本篇文章撰寫的時候是ASP.NET MVC 1.0,現在ASP.NET MVC 2.0已經擁有RequireHttps這個 ActionFilter 可以用了

 

以下就是完整的 Code

namespace MvcApplication
{
    public class SSLAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (!filterContext.HttpContext.Request.IsSecureConnection)
            {
                filterContext.Result = new RedirectResult("https://" + filterContext.HttpContext.Request.Url.Authority + filterContext.HttpContext.Request.Url.PathAndQuery);
            }
        }
 
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
 
        }
 
        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
        }
 
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
        }
    }
} 

ASP.NET MVC 中很多事情都是要使用 ActionFilter 來實作,所以玩 ASP.NET MVC 一定要學會 ActionFilter的寫法。

http://www.asp.net/learn/mvc/tutorial-14-cs.aspx

回應討論