Asp.net mvc ASP.NET MVC要求TTPS
如何使用ASP.NET MVC 2 Preview 2 RequireHttps属性 我想防止将不安全的HTTP请求发送到操作方法。我想自动重定向到HTTPS MSDN: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
[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ş您可能希望使用此方法更改方案-应该比字符串替换更安全: