Asp.net mvc 3 HTTPS-Mvc3-VisualStudio2010

Asp.net mvc 3 HTTPS-Mvc3-VisualStudio2010,asp.net-mvc-3,https,Asp.net Mvc 3,Https,我有一个网站需要在https模式(而不是本地开发)的所有方式打开的要求。这是一个内部应用程序 当我运行web.config条目为true的https站点时,该站点看起来像是在做圆周运动,并一次又一次地重复该请求 public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); //make

我有一个网站需要在https模式(而不是本地开发)的所有方式打开的要求。这是一个内部应用程序

当我运行web.config条目为true的https站点时,该站点看起来像是在做圆周运动,并一次又一次地重复该请求

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());

        //make sure that the remote site opens in https mode.
        bool isSSL = false;
        bool.TryParse(ConfigurationManager.AppSettings[ApplicationKeys.IsSSLRequired], out isSSL);
        if (isSSL && !HttpContext.Current.Request.IsLocal && !HttpContext.Current.Request.IsSecureConnection)
            filters.Add(new RequireHttpsAttribute());

    }
protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
        //RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);

        //wire up Unity IoC
        container = new UnityContainer();
        UnityBootstrapper.ConfigureContainer(container);
        EntityMapper.MapEntities();
        DependencyResolver.SetResolver(new UnityDependencyResolver(container));
        //wire up Unity Controller Factory
        ControllerBuilder.Current.SetControllerFactory(new UnityControllerFactory());
    }

我这里缺少什么?

您可以使用支持SSL的服务器来托管您的站点。

既然您已经在利用web.config来驱动此功能,我建议您使用

您可以设置将非HTTPS流量重定向到HTTPS的规则。有关配置,请参阅此线程:

有了这一点,您可以通过在部署到生产环境时启用规则来进一步改善您的开发体验。

在您的Global.asax中:

受保护的无效应用程序\u BeginRequest()
{
bool-isSSL=false;
bool.TryParse(ConfigurationManager.AppSettings[ApplicationKeys.IsSSLRequired],out-isSSL);
if(isSSL&!Context.Request.IsSecureConnection)
Response.Redirect(Context.Request.Url.ToString().Replace(“http:”,“https:”);
}

只是一个想法。HttpContext.Current.Request在应用程序_Start()上可用吗?

我已经从全局文件中删除了代码,并在web.config中创建了一个规则。当我使用http时,会收到错误消息“页面未正确重定向”。以下是规则:{R:1}”/>我猜您处于无限重定向循环中,因为您没有指定重定向到HTTPS。url属性应该类似于“{R:1}”“根据您在评论中提供的内容。@嘿,对不起,我刚刚意识到SO将我的URI转换为实际链接,而不是我想要的文本。很抱歉给你带来了困惑。它应该是
”https://dev.domain.com/Study{R:1}“
。由于本网站的某些规则,我上面评论中的https已被删除。我已经把https放在了这个网站上,它对我起了作用。谢谢你的帮助。我还没有收到帮助线程的电子邮件通知。有什么想法吗?@learning。。。我不确定您所指的帮助线程是什么。这会导致页面未正确重定向错误。就像我的一样。