2017年2月24日金曜日

ASP.NET MVC の AntiForgeryToken がIE,Edgeでエラー

ASP.NETにはCSRF対策にTokenを発行して検証してくれる機能がありますが、IEとEdgeでだけエラーになり、FirefoxとChromeでは大丈夫、しかもデバッグ時にはIEやEdgeでもエラーにならないという不可思議な現象に悩まされました。

必要な偽造防止 Cookie "__RequestVerificationToken" が存在しません。

結構ハマってしまったのですが、原因はこれでした。

Cookie を使用するドメインでは、ドメイン名およびサーバー名に英数字 ("-" または ".") だけを使用しなければなりません。サーバー名にアンダースコア ("_") など、その他の文字が含まれている場合、Internet Explorer は Cookie をブロックします。

デプロイ先のテスト環境のドメインに「test_xxxx」とアンダースコアが含まれていたのが原因でした。
結構古くからの常識のようで、まだまだ勉強不足を痛感します。

以上メモまで。


0 件のコメント:

コメントを投稿