2013-03-02 30 views
1

我有一些ASP .NET MVC4网站,我必须首先把开发地点放在测试。开发网站没有SSL,但LIVE有它。要求开发和现场网站的小问题

好吧。我必须在20个控制器中使用[Requirehttps],并且我无法在每次在DEV网站下测试时对其进行评论。

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

任何线索?

+0

这不是您的初始问题的答案,但您为什么不在您的开发服务器上启用https? – OakNinja 2013-03-02 00:20:27

+0

@OakNinja嗯,我的网名表示他不能将GoDaddy Sertificate应用到开发网站... – 2013-03-02 00:28:34

+1

您可以为您的开发人员设置自签名证书。机。请参阅:http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-in-iis-7.html和部分:生成具有正确公用名称的自签名证书 – OakNinja 2013-03-02 00:32:42

回答

6

覆盖的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); 
    } 
} 

BaseController

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

你是天才,男人!谢谢! – 2013-03-02 00:59:12

+0

欢迎来到SO。希望能看到更多你的帖子 – 2013-03-02 01:31:29

1

如果调试/ RELE之间切换您可以在您的代码中执行此操作:

#if !DEBUG 
    [RequireHttps] 
#endif