小写查询字符串在 net5 中不起作用?

问题描述

我在 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); }


    }

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

解决方法

根据documentation,除非RouteOptions.LowercaseQueryStringsRouteOptions.LowercaseUrls,否则不使用true,这让我觉得也许您应该尝试

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

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...