【问题标题】:Requirehttps for DEVELOPMENT and LIVE websitesDEVELOPMENT 和 LIVE 网站需要 https
【发布时间】:2013-03-02 00:14:32
【问题描述】:

我有一些 ASP .NET MVC4 网站,我必须首先将其放到开发场所进行测试。开发网站没有 SSL,但 LIVE 有。

嗯。我必须在 20 个控制器中使用[Requirehttps],并且每次在 DEV 网站下测试时我都无法评论它。

是否有任何方法可以配置 [Requirehttps] 至少基于一些 web.config 设置,或者可能有另一种方法?我的意思是我不喜欢每次在 LIVE 下发布网站时都在 20 [Requirehttps] 左右发表评论。

有什么线索吗?

【问题讨论】:

  • 这不是您最初问题的答案,但您为什么不在开发服务器上启用 https?
  • @OakNinja Well My parnet 说他不能将 GoDaddy Sertificate 应用到 DEVELOPMENT 网站...
  • 您可以为您的开发人员设置一个自签名证书。机器。请参阅:sslshopper.com/… 和部分:使用正确的通用名称生成自签名证书
  • 我建议在您的开发环境中也使用 SSL,因为使用 ssl 的网站表现不同,例如对 javascript 文件的引用和 ajax 调用。
  • @OakNinja 在 VS 2010/2012 中使用 IIS Express 时,在开发机器上本地启用 SSL 所需要做的就是在项目属性中将 Enable SSL 设置为 True。有关详细信息,请参阅 Scott Hanselman 博客上的 Working with SSL at Development Time is easier with IISExpress

标签: .net asp.net-mvc ssl requirehttps


【解决方案1】:

覆盖 RequireHttpsAttribute

web.config

<appSettings>
  <add key="SSL" value="false" />
</appSettings>

MyHttpsAttribute.cs

public class MyHttpsAttribute : RequireHttpsAttribute, IAuthorizationFilter
{
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        if (bool.Parse(AppSettings["SSL"]) != true) {
            return;
        }
        base.OnAuthorization(filterContext);
    }
}

基础控制器

[MyHttps]
public abstract class BaseController : Controller
{
    ...
}

【讨论】:

    【解决方案2】:

    如果您在调试/发布版本之间切换,您可以在代码中执行此操作:

    #if !DEBUG
        [RequireHttps]
    #endif
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      相关资源
      最近更新 更多