【问题标题】:LowercaseQueryStrings Don't work in net5?小写查询字符串在 net 5 中不起作用?
【发布时间】:2021-05-29 08:28:39
【问题描述】:

我在 MVC 网络核心中有一个 web api,我将到达我的 api 的加密参数传递给它,这些参数转换为小写(这不应该发生,因为原始加密值有大写和小写字母)。

通过设置如下值配置启动类的ConfigureServices方法(但问题依旧)

 services.AddRouting(options => options.LowercaseQueryStrings = false);
 services.AddRouting(options => options.LowercaseUrls = false);

这就是我在创业课上的内容。

Startup.cs

 public void ConfigureServices(IServiceCollection services)
    {
        try
        {

            var iMvc = services.AddMvc(options =>
            {
                //options.Filters.Add(new SessionExpireAttribute());
                options.EnableEndpointRouting = true;
            }).AddPluggins(searchPatternList).AddJsonOptions(options =>
            {
                options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
                options.JsonSerializerOptions.PropertyNamingPolicy = null;
            }).AddFluentValidation();
            services.AddSession(options =>
            {
                options.Cookie.Name = "session___";
                options.IdleTimeout = TimeSpan.FromMinutes(Configuration["Session:Duration"] == null ? 30 : Convert.ToDouble(Configuration["Session:Duration"]));
                options.Cookie.IsEssential = true;
            });
            services.AddHttpContextAccessor();
            services.AddControllersWithViews();
            services.AddResponseCaching();
            services.AddSignalR();
            services.AddRazorPages();
            services.AddRouting(options => options.LowercaseQueryStrings = false);
            services.AddRouting(options => options.LowercaseUrls = false);
        }
        catch (Exception ex) { logger.Error(ex); }


    }

会发生什么?感谢您的帮助。

【问题讨论】:

    标签: c# asp.net5


    【解决方案1】:

    根据documentationRouteOptions.LowercaseQueryStrings不被使用,除非RouteOptions.LowercaseUrlstrue,这让我觉得也许你应该试试

    services.AddRouting(options => {
        options.LowercaseQueryStrings = false;
        options.LowercaseUrls = false;
    });
    

    (在一次调用 AddRouting 扩展方法而不是两次连续调用中设置路由选项。我认为第二个可能会覆盖第一个但我不确定)

    如果这不起作用,我建议查看SetCompatibilityVersion 扩展方法,看看更改兼容性选项是否可以解决它。干杯!

    【讨论】:

    • 感谢您的帮助。但我也尝试这样做,结果相同。
    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2012-06-15
    相关资源
    最近更新 更多