2017-12-07 7 views
1

に私はこの記事にhttps://docs.microsoft.com/en-us/aspnet/core/security/enforcing-sslケストレルHTTPS POSTの結果は、生産(ASP.NETコア2.xの)

記事は

// Requires using Microsoft.AspNetCore.Mvc; 
public void ConfigureServices(IServiceCollection services) 
{ 
    services.Configure<MvcOptions>(options => 
    { 
     options.Filters.Add(new RequireHttpsAttribute()); 
    }); 

を示唆するとおりに、私はセットアップに続いたときにおよび

これは、すべてのブラウザでGETリクエストを送信するとうまくいくようです。しかし、POSTリクエストにヒットしたときに、何が原因であるのかをほとんど知らされていない状態コードが400になってしまいます。この問題はDEBUGモードでは発生しません。

EdgeまたはIEを使用している場合、このエラーは発生しません。 ChromeやPOSTMANを使用すると、400のステータスコードが取得されます。

私がPOSTMANを使用し、HTTPリクエストをHTTPを使用するように変更すると、HTTP(OK)応答が返されます。だから、私は上記の記事で何らかの問題があると思っていますが、私は解決策に大したことはありませんでした。

誰でもこの問題の経験や洞察はありますか?

答えて

2

私はASP.NETコア書換と働いたことはないが、そのコードを調べて、それが標準Response.Redirect()方法を使用 - https://github.com/aspnet/BasicMiddleware/blob/9814f3bfbcf3a11dc86c4047fbfc2fe48744f96c/src/Microsoft.AspNetCore.Rewrite/Internal/RedirectToHttpsRule.cs#L33

このリダイレクト()メソッドは、HTTP 301または302コードを返すことが可能です。 ブラウザはこのリダイレクトをたどる可能性が高いですが、データなしでGETまたはPOSTを使用することがあります。 ブラウザのdevツールでpreserve logを有効にし、実際に何が起きているかを確認することをおすすめします。この投稿は非常によくそれを説明 - https://scotthelme.co.uk/report-uri-journey-to-a-permanent-redirect/

かいつまんを、あなたは、HTTP 307または308 AddRedirectToHttpsを必要とするコードの任意の場所で使用されていないオプションのステータスコードの引数は、(ASP.NETコアのバグのように見えます)があり

おそらく、HTTPリクエストをリダイレクトするための独自のコードを記述する必要があります。

私は1つの私のプロジェクトで同じ問題を抱えていたと私は非GET HTTPは

EDIT要求のために禁断のHTTP 403を返すことにしました簡単にするために:

を私はAddRedirectToHttpsの間違ったブランチに見えました。実際には301と302の異なるステータスコードを返すことができるようですので、ステータスコードを引数として簡単に設定できるはずです。

関連する問題