ValidateAntiForgeryTokenAttribute
ブラウザー以外のクライアントから呼び出しているときに、属性を持つメソッドの偽造防止に対処する最良の方法は何WinForm
ですか?
私が知っていることに基づいて、以下は偽造防止の仕組みです。
非表示の入力フィールドがページに追加されます。
同じ名前の Cookie もクライアントに送信されます
次のリクエストで、Cookie と非表示の入力フィールドの両方がサーバーに送信されます。サーバーは
AntiForgery.Validate(token, cookie)
、要求が正当であることを確認するために呼び出します。
Web アプリではすべて正常に動作します。WinForm では動作しないようです。これが私がすることです:
- を使用し
HttpClient
て、トークンを含むページにアクセスします。 - ページを解析し、非表示の入力フィールドを取得します。クッキーも拾います。
- そのままクッキーを渡します。その上に
__RequestVerificationToken
、非表示フィールドの値を含む新しいヘッダーを追加します。 - サーバーコードにステップインします。
- は
AntiForgery.Validate(xx,yy)
エラーで失敗します: 提供された偽造防止トークンはユーザー X 向けでしたが、現在のユーザーは Y です。