Asp.net mvc 如何为mvc应用程序中的所有控制器启用ssl

Asp.net mvc 如何为mvc应用程序中的所有控制器启用ssl,asp.net-mvc,oauth-2.0,asp.net-mvc-5,ssl-certificate,openid,Asp.net Mvc,Oauth 2.0,Asp.net Mvc 5,Ssl Certificate,Openid,我有一个MVC 5应用程序,我安装了ssl证书,现在正在连接https,但在我的代码中,我必须在homecontroller上设置“[requirehttps]”属性,如下所示: [RequireHttps] public class HomeController : Controller {} 是否有一种方法可以为整个应用程序设置它,这样我就不必为应用程序中的每个控制器都这样做了?继承了[RequireHttps]属性,因此您可以创建一个基本控制器,对其应用该属性,然后从该基本控制器派生所有

我有一个MVC 5应用程序,我安装了ssl证书,现在正在连接https,但在我的代码中,我必须在homecontroller上设置“[requirehttps]”属性,如下所示:

[RequireHttps]
public class HomeController : Controller
{}

是否有一种方法可以为整个应用程序设置它,这样我就不必为应用程序中的每个控制器都这样做了?

继承了
[RequireHttps]
属性,因此您可以创建一个基本控制器,对其应用该属性,然后从该基本控制器派生所有控制器

[RequireHttps]
public abstract class BaseController : Controller
{}

public class HomeController : BaseController
{}

public class FooController : BaseController
{}

使用
FiltersConfig
中的
RegisterGlobalFilters
方法

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

这将是更多的工作,然后添加属性到每个控制器,我是寻找更少的工作?也许是一些常规属性设置之类的?不是很多工作。在VisualStudio的整个项目中,只需简单地查找并替换“Controller:Controller”,然后替换为“Controller:BaseController”,就可以了。好吧,这几乎与在每个控制器上创建属性所需的工作量相同,尽管如此,我还是在寻找不同的解决方案。如果有…如何使用这个?