如何解决小写查询字符串在 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.LowercaseQueryStrings
是RouteOptions.LowercaseUrls
,否则不使用true
,这让我觉得也许您应该尝试
services.AddRouting(options => {
options.LowercaseQueryStrings = false;
options.LowercaseUrls = false;
});
(仅在一次调用 AddRouting
扩展方法而不是两次连续调用中设置路由选项。我认为第二个可能会覆盖第一个,但我不确定)
如果这不起作用,我建议您查看 SetCompatibilityVersion
扩展方法,看看更改兼容性选项是否可以修复它。干杯!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。