2014-06-19 49 views
10

我有一個MVC 5應用程序,我安裝了ssl證書,現在我使用https連接,但在我的代碼中,我必須設置'[requirehttps]'屬性像這樣的HomeController:如何爲mvc應用程序中的所有控制器啓用ssl

[RequireHttps] 
public class HomeController : Controller 
{} 

是不是有一種方法來設置它爲整個應用程序,所以我不必爲每個控制器我已經在應用程序做到這一點?

回答

15

FiltersConfig使用RegisterGlobalFilters方法。

public class FilterConfig 
{ 
    public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
     filters.Add(new RequireHttpsAttribute()); 
    } 
} 
+0

如何使用它? –

2

[RequireHttps]屬性是繼承的,因此您可以創建一個基礎控制器,將該屬性應用於該屬性,然後從該基礎派生所有控制器。

[RequireHttps] 
public abstract class BaseController : Controller 
{} 

public class HomeController : BaseController 
{} 

public class FooController : BaseController 
{} 
+0

這將是更多的工作,然後將屬性添加到每個控制器,我正在尋找更少的工作?也許一些一般的屬性設置或什麼? – user1186050

+0

沒有太多的工作。一個簡單的查找和替換「控制器:控制器」,並取代「控制器:BaseController」,在Visual Studio中的項目應該做的伎倆。 –

+1

好吧,它幾乎與創建每個控制器上方屬性的工作量相同,但我一直在尋找不同的解決方案。如果有... – user1186050

相關問題