Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC要求TTPS_Asp.net Mvc_Ssl_Asp.net Mvc 2_Https_Asp.net Mvc Futures - Fatal编程技术网

Asp.net mvc ASP.NET MVC要求TTPS

Asp.net mvc ASP.NET MVC要求TTPS,asp.net-mvc,ssl,asp.net-mvc-2,https,asp.net-mvc-futures,Asp.net Mvc,Ssl,Asp.net Mvc 2,Https,Asp.net Mvc Futures,如何使用ASP.NET MVC 2 Preview 2 RequireHttps属性 我想防止将不安全的HTTP请求发送到操作方法。我想自动重定向到HTTPS MSDN: 如何使用此功能?我猜: [RequireHttps] //apply to all actions in controller public class SomeController { //... or ... [RequireHttps] //apply to this action only pu

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

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

MSDN:

如何使用此功能?

我猜:

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

}

我认为您需要为此推出自己的
actionfilteratAttribute

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();
    }
}

您可能也想阅读。

这似乎确实阻止了HTTP请求,但它不会重定向到HTTPS.No。这可能只是Visual Studio的ASP.NET开发服务器的一个问题。ASP.NET MVC RequireHttps仅在生产中使用:这可能是一个基本问题,因为read和
post
请求也会被加密,但想知道我是否也应该在post中装饰
RequireHttps
?在将此添加到用于post方法的操作时要小心。@Carl为什么?因为post数据丢失了?如果您希望确保敏感数据不会通过非https发布,则不应处理该数据。@çağdaş您可能希望使用此方法更改方案-应该比字符串替换更安全: