Asp.net-Mvc

ASP.NET MVC RequireHttps

  • October 15, 2009

如何使用 ASP.NET MVC 2 Preview 2 Futures RequireHttps 屬性?

我想防止將不安全的 HTTP 請求發送到操作方法。我想自動重定向到 HTTPS。

MSDN:

如何使用此功能?

我猜:

[RequireHttps] //apply to all actions in controller
public class SomeController 
{
 //... or ...
 [RequireHttps] //apply to this action only
 public ActionResult SomeAction()
 {
 }

}

我認為您將需要為此推出自己ActionFilterAttribute的產品。

public class RedirectHttps : ActionFilterAttribute {
  public override void OnActionExecuting(ActionExecutingContext filterContext) {
       if (!filterContext.HttpContext.Request.IsSecureConnection) {
           filterContext.Result = 
               new RedirectResult(filterContext.HttpContext.Request.Url.
                   ToString().Replace("http:", "https:"));
           filterContext.Result.ExecuteResult(filterContext);
       }
       base.OnActionExecuting(filterContext);
   }
}

然後在您的控制器中:

public class HomeController : Controller {

   [RedirectHttps]
   public ActionResult SecuredAction() {
       return View();
   }
}

您可能也想閱讀內容。

引用自:https://stackoverflow.com/questions/1574347