問題タブ [anonymous-users]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1236 参照

c# - ASP.NET Identity 2 と匿名ユーザー

開発中の e コマース ソリューションでは、AspNet Identity 2.2.1 を使用しており、ゲスト (匿名) ユーザーは Web サイトに事前登録せずにチェックアウトを完了する必要があります。この要件を満たすために、Cookie から SessionTrackId (文字列 GUID) を取得する UserMigrationAttribute という名前の ActionFilter を作成しました。ユーザー名は、SessionTrackId@mydomain.com のようなものです。

サイト全体でその機能を利用するために、この UserMigration 属性で BaseController クラスを装飾しました。

この時点までのすべては、単一の欠点の問題で期待どおりに機能します。これは、任意のユーザーに対してページが初めて読み込まれるときです。[ValidateAntiForgeryToken]属性を持つメソッドへの Jquery Ajax 呼び出しを実行しようとすると、呼び出しは失敗します。すべての ajax 呼び出しでパラメーターをThe provided anti-forgery token was meant for a different claims-based user than the current user.送信しているにもかかわらず、' ' エラー。__RequestVerificationToken

ただし、ユーザーがリンクをクリックして別のページを開いたり、現在のページを再読み込み/更新したりすると、後続のすべての ajax 呼び出しが正常に完了します。

私たちの理解では、UserMigrationAttribute は OnActionExecuting メソッドでユーザーを作成しますが、プロセス @Html.AntiForgeryToken() のユーザーにサインインした後、正しい値で更新されていません。

以下の UserMigrationAttribute コードを見つけることができます。

ヘルプや提案は大歓迎です。

ありがとうございました、