12

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

我想防止将不安全的 HTTP 请求发送到操作方法。我想自动重定向到 HTTPS。

MSDN:

如何使用此功能?

4

2 回答 2

16

我认为您将需要为此推出自己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();
    }
}

您可能也想阅读内容。

于 2009-10-15T22:30:51.610 回答
11

我猜:

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

}
于 2009-10-15T19:02:23.277 回答