我已经在MVC4中的RouteConfig.cs中编写了Route。它可以正常使用HTTP;即:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Default", id = UrlParameter.Optional }
);
如何创建HTTPS路由以便某些页面可以在HTTPS上打开,而某些页面可以在HTTP上打开?
答案 0 :(得分:2)
正如@SLaks建议的那样,您可以使用Action
属性修饰[RequireHttps]
。
但是,如果您不想在Action
上强制使用Https,但只要求 Route
仅匹配Https请求,请尝试添加{{} 1}}如下:
RouteConstraint
然后:
public class RequireHttpsConstraint : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
return httpContext.Request.IsSecureConnection;
}
}
答案 1 :(得分:1)
MVC路由仅匹配URL的路径部分 它们完全独立于主机或协议。
如果您想将某些网址限制为仅限HTTPS,请将[RequireHttps]
属性添加到控制器或操作中。