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

时间:2022-07-08 22:55:58

I have a MVC 5 app and I installed the ssl certificate and I'm now connecting with https, but in my code I had to set the '[requirehttps]' attribute on the homecontroller like so:

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

[RequireHttps]
public class HomeController : Controller
{}

Isn't there a way to set it for the whole application so I don't have to do this for each and every controller I have in the app?

是否有办法为整个应用程序设置它所以我不需要为应用程序中的每个控制器做这个?

2 个解决方案

#1


17  

Use the RegisterGlobalFilters method in your FiltersConfig.

使用FiltersConfig中的RegisterGlobalFilters方法。

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

#2


3  

The [RequireHttps] attribute is inherited, so you could create a base controller, apply the attribute to that, and then derive all your controllers from that base.

[RequireHttps]属性被继承,因此您可以创建一个基控制器,将属性应用到它,然后从基中派生所有的控制器。

[RequireHttps]
public abstract class BaseController : Controller
{}

public class HomeController : BaseController
{}

public class FooController : BaseController
{}

#1


17  

Use the RegisterGlobalFilters method in your FiltersConfig.

使用FiltersConfig中的RegisterGlobalFilters方法。

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

#2


3  

The [RequireHttps] attribute is inherited, so you could create a base controller, apply the attribute to that, and then derive all your controllers from that base.

[RequireHttps]属性被继承,因此您可以创建一个基控制器,将属性应用到它,然后从基中派生所有的控制器。

[RequireHttps]
public abstract class BaseController : Controller
{}

public class HomeController : BaseController
{}

public class FooController : BaseController
{}