微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决小写查询字符串在 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 扩展方法,看看更改兼容性选项是否可以修复它。干杯!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。