web-dev-qa-db-ja.com

AntiforgeryTokenエラーのデプロイ

IISExpressに組み込まれているVisual Studio 2012を使用して、ローカルコンピューター上のASP.NET MVCアプリケーションで作業しています。大幅な進歩を遂げた後、ローカルネットワークで利用できるようにすることを決め、ビジュアルスタジオから仮想ディレクトリを作成しました。ログインはできますが、新しいユーザーを登録しようとすると、以下のエラーが発生します。

偽造防止トークンを復号化できませんでした。このアプリケーションがWebファームまたはクラスターによってホストされている場合は、すべてのマシンが同じバージョンのASP.NET Webページを実行していること、および構成で明示的な暗号化および検証キーが指定されていることを確認してください。 AutoGenerateはクラスターでは使用できません。

ASPNET resources )から新しいマシンキーを生成し、それを構成ファイルに配置しましたが、まだ機能しません。誰かが解決策を提案できますか?

18
user1656779

私が気づいたことの1つは、このエラーはページに複数の@Html.AntiForgeryToken()コードがあるために発生する可能性があることです。ページに2つありましたが、2つ目を削除すると、このエラーはなくなりました。

33
Louis Rofrano

Webサイトとマシンの組み合わせに固有のマシンキーを追加する必要があります。トークンジェネレーターが使用するのはこのマシンキーです。これは、マシンキーを生成する必要があることを意味します(これは here(dead link-beware) を実行して、マシンのWeb.configファイルに追加する必要があります。詳細については、こちらを参照してください:- http://msdn.Microsoft.com/en-us/library/ff649308.aspx

IIS内から直接これを行うこともできます: http://blogs.msdn.com/b/amb/archive/2012/07/31/easiest-way-to-generate-machinekey.aspx

7
Erik Schierboom

そこで私は答えを見つけることができました http://iamdotnetcrazy.blogspot.ru/2013/08/how-to-solve-anti-forgery-token-could.html

4
Eugene Ilyushin

私の場合、これはロードバランサがサイトに対してセッションの永続化をオンにしていないことの問題でした。

1
CountZero

部分ビューを使用しているページがありました。どちらにも@ Html.AntiForgeryToken()が含まれており、部分ページから@ Html.AntiForgeryToken()を削除すると機能しました。

0
Dev