【问题标题】:How do I enable ssl for all controllers in mvc application如何为 mvc 应用程序中的所有控制器启用 ssl
【发布时间】:2014-06-19 23:33:53
【问题描述】:

我有一个 MVC 5 应用程序,我安装了 ssl 证书,现在我正在使用 https 进行连接,但是在我的代码中,我必须像这样在 homecontroller 上设置“[requirehttps]”属性:

[RequireHttps]
public class HomeController : Controller
{}

有没有办法为整个应用程序设置它,这样我就不必为应用程序中的每个控制器都这样做?

【问题讨论】:

    标签: asp.net-mvc oauth-2.0 asp.net-mvc-5 ssl-certificate openid


    【解决方案1】:

    FiltersConfig 中使用RegisterGlobalFilters 方法。

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

    【讨论】:

    • 这个怎么用?
    【解决方案2】:

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

    [RequireHttps]
    public abstract class BaseController : Controller
    {}
    
    public class HomeController : BaseController
    {}
    
    public class FooController : BaseController
    {}
    

    【讨论】:

    • 那将是更多的工作然后将属性添加到每个控制器,我正在寻找更少的工作?也许是一些一般的属性设置或什么?
    • 工作量不大。在 Visual Studio 的整个项目中对“Controller : Controller”进行简单的查找和替换,并用“Controller : BaseController”替换即可。
    • 好吧,这几乎与在每个控制器上方创建属性的工作量相同,但我一直在寻找不同的解决方案。如果有的话……
    猜你喜欢
    • 2012-03-12
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2015-09-21
    • 1970-01-01
    相关资源
    最近更新 更多