【发布时间】:2017-12-07 18:33:50
【问题描述】:
我关注了这篇文章https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl
我完全按照文章的建议设置
// Requires using Microsoft.AspNetCore.Mvc;
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MvcOptions>(options =>
{
options.Filters.Add(new RequireHttpsAttribute());
});
和
// Requires using Microsoft.AspNetCore.Rewrite;
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
var options = new RewriteOptions()
.AddRedirectToHttps();
app.UseRewriter(options);
在所有浏览器上发送 GET 请求时,这似乎工作正常。但是,当它遇到 POST 请求时,我得到一个 400 状态代码,但没有太多说明是什么原因造成的——奇怪的是,这个问题在 DEBUG 模式下不会发生。
如果我使用 Edge 或 IE,则不会发生此错误。当我使用 Chrome 或 POSTMAN 时,我会收到 400 状态码。
奇怪的是,如果我使用 POSTMAN,并且我将 POST 请求更改为使用 HTTP,而不是 HTTPS,我会得到 200(OK)响应。所以,我认为上面的文章存在某种问题,但我对解决方案的运气并不好。
有人对此问题有任何经验或见解吗?
【问题讨论】:
标签: asp.net asp.net-core kestrel-http-server