[ValidateAntiForgeryToken]
Marionette & Backbone を使用して作成されたシングル ページ アプリケーション (SPA) でMicrosoft の MVC を動作させるのに問題があります。問題は、MVC[ValidateAntiForgeryToken]
メソッドが、JSON の一部として送信するトークンを認識できないことにあるようです。トークンが返信のフォーム部分にある必要があるためだと考えましたが、MrOggy85 はそれは問題ではないと言っています (以下の彼の回答を参照)。
コードはAttributeRoutingを使用する私の API コントローラーにあり、これが問題の原因であると想定しています。典型的なアクションは次のようになります。
// POST api/vizschemes/
[POST("")]
[Authorize(Roles = "...some role...")]
[ValidateAntiForgeryToken]
public ActionResult Add(CreateUpdateSmVizSchemeDto dto, ICreateSmVizScheme service)
{
... code to update the VizScheme and return json
}
他の誰かがこれを克服しましたか?多くのグーグル検索でコメントが投稿されました。「ASP.NET MVC は、AntiForgery クラスと [ValidateAntiForgeryToken] 属性を通じて、偽造防止トークンの組み込みサポートを提供します。現在、この機能は Web API に組み込まれていません。ただし、 (KnockoutJS) テンプレートには、Web API のカスタム実装が含まれています。 ". これは、彼らが自分で書くことを示唆しています。
他の誰かがこれに当たったことがありますか?もしそうなら、どのように解決しましたか? 明らかな何かが欠けていますか、それとも独自の ValidateAntiForgeryToken メソッドを作成する必要がありますか? ご意見をお待ちしております。
アップデート
@MrOggy85 が提供する素晴らしいスタック オーバーフロー リンクには、さらに多くの情報が含まれています。$.ajax を使用して JSON データを投稿するときに AntiForgeryToken を提供するにはどうすればよいですか? を参照してください。. 独自の AntiForgery テストを作成する予定であり、完了したら投稿します。