是否可以在ASP.Net MVC应用程序的控制器级别关闭ssl?

时间:2011-01-25 15:48:52

标签: asp.net-mvc-2 ssl

是否可以通过动作过滤器为特定方法关闭ssl?

示例...如果有人以某种方式点击我的Index方法并且有ssl on ...我可以再次重定向到该方法并将其关闭吗?

1 个答案:

答案 0 :(得分:0)

的Global.asax.cs

protected void Application_BeginRequest(){
    if (Context.Request.IsSecureConnection)
        Response.Redirect(Context.Request.Url.ToString().Replace("https:", "http:"));
}

您可以将相同的代码添加到操作过滤器:

public class SSLFilter : ActionFilterAttribute {

    public override void OnActionExecuting(ActionExecutingContext filterContext){
        if (filterContext.HttpContext.Request.IsSecureConnection){
            var url = filterContext.HttpContext.Request.Url.ToString().Replace("https:", "http:");
            filterContext.Result = new RedirectResult(url);
        }
    }
}