Подтвердить что ты не робот

ASP.NET MVC RequireHttps

Как я могу использовать атрибут RequireHttps ASP.NET MVC 2 Preview 2 Futures?

Я хочу предотвратить отправку необработанных HTTP-запросов в метод действия. Я хочу автоматически перенаправить на HTTPS.

MSDN:

Как использовать эту функцию?

4b9b3361

Ответ 1

Мое предположение:

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

}

Ответ 2

Думаю, вам понадобится катить свой 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();
    }
}

Возможно, вы захотите прочитать этот.