【问题标题】:Invalid Arguments error in Global.asax in mvcmvc 中 Global.asax 中的无效参数错误
【发布时间】:2012-11-20 05:19:37
【问题描述】:

我正在尝试遵循教程Securing Asp.net,但是当我尝试输入这一行时

GlobalConfiguration.Configuration.Filters.Add(new System.Web.Http.AuthorizeAttribute());

它给了我以下错误

The best overloaded method match for 'System.Web.Http.Filters.HttpFilterCollection.Add(System.Web.Http.Filters.IFilters)' has some invalid agruments 

下面是我的 Global.asax 代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using DatabaseService_WebAPI.App_Start;

namespace DatabaseService_WebAPI
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            System.Data.Entity.Database.SetInitializer(new DatabaseService_WebAPI.Models.ProductContextInitializer());
            System.Data.Entity.Database.SetInitializer(new DatabaseService_WebAPI.Models.LocalDBContextInitializer());
            System.Data.Entity.Database.SetInitializer(new DatabaseService_WebAPI.Models.GCMClassContextInitializer());
            System.Data.Entity.Database.SetInitializer(new DatabaseService_WebAPI.Models.ProductTypeContextInitializer());

            GlobalConfiguration.Configuration.Filters.Add(new System.Web.Mvc.AuthorizeAttribute());

            WebApiConfig.Configure(GlobalConfiguration.Configuration);

            AreaRegistration.RegisterAllAreas();

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }

        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
            filters.Add(new System.Web.Mvc.AuthorizeAttribute());
            filters.Add(new RequireHttpsAttribute());
        }
    }
}

我不是 mvc 的专家开发人员。所以任何人都可以告诉如何添加过滤器?

【问题讨论】:

    标签: asp.net-mvc-4 asp.net-session


    【解决方案1】:

    在 global.asax.cs 中创建此方法:

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
       // add filters here
       filters.Add(new MyCustomFilter());
    }
    

    然后从Application_Start方法调用它:

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }
    

    【讨论】:

    • 我正在尝试使用过滤器。Add(new RequireHttpsAttribute());在我的 global.asax 中,但是当我运行我的网页时,它显示无法连接。当我评论这行代码时,它会显示登录页面。
    • 使用 HTTPS 连接到您的站点时出现问题,请检查您是否已正确安装证书。
    猜你喜欢
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 2020-02-16
    相关资源
    最近更新 更多