1

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

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

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

有什么线索吗?

4

2 回答 2

6

覆盖 RequireHttpsAttribute

网络配置

<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
{
    ...
}
于 2013-03-02T00:48:29.877 回答
1

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

#if !DEBUG
    [RequireHttps]
#endif
于 2013-04-11T21:38:20.740 回答