2013-03-02 58 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