2

ASP.NET MVC4 + Web API プロジェクトで angular 1.0.4 を使用しています。angularのCSRF保護を無駄に活用しようとしています。XSRF-TOKEN という名前の Cookie を渡していることがわかりますが、angular が応答で X-XSRF-TOKEN という名前のヘッダーとして値を追加しようとすると、値が未定義として表示されます。こちらのアドバイスに従ってみましたが、HTML がまだレンダリングされていないため、要素が見つかりません。

何が欠けている可能性がありますか?ASP.NET MVC によって生成された RequestVerificationToken Cookie は、javascript アクセスから保護されていますか?

また、Cookieまたはフォーム入力値のいずれかをAngularに遅延取得させることは可能ですか? もしそうなら、どのように?これを行う方法に関するドキュメントが見つかりません。

4

1 に答える 1

1

私の質問に対する正確な答えが見つかりませんでした。「input[name="__RequestVerificationToken"]」を見つけ、その値を取得し、その値を持つオブジェクトを返すサービスを作成することになりました。次に、そのオブジェクトを使用して構成にヘッダーを設定します。これにより、ページにすぐには表示されないフォームのヘッダーとして、値を遅延抽出して追加できます。

また、さらに調べてみると、ASP.NET の AntiForgeryToken サポートでは、Cookie とフォームの入力/ヘッダー値の両方を検証する必要があるため、組み込みの AngularJS サポートでは十分ではないことにも気付きました。

誰かがより良い解決策を持っている場合は、喜んで答えをその解決策に移します。

于 2013-03-19T19:37:47.337 に答える