(たぶんも以前のバージョンで)SPAのシナリオと、これは実際には非常に簡単です:
はあなたからあなたのインデックスページを提供していることを確認します。CSHTMLビューとあなたはjqueryのを使用している場合は、単にあなたは、このトークンを読み、それが内部HTTPヘッダ
$(document).ajaxSend(function(e, xhr, options) {
if (options.type.toUpperCase() != "GET") {
xhr.setRequestHeader("RequestVerificationToken", $("input[name='__RequestVerificationToken']").val());
}
});
内のすべての将来の非取得の要求で送信されたことを確認することができます
@Html.AntiForgeryToken()
を追加するには、あなたがしたい場合は、コントローラの方法、ちょうど
[HttpPost]
[ValidateAntiForgeryToken]
public string TestAntiForgery()
{
return "success";
}
を追加/ differenヘッダーを使用する必要がありますがconfigureServicesでこのようにそれを変更することができます。
services.Configure<AntiforgeryOptions>((options) =>
{
// Configure a different header here
options.HeaderName = "otherHeaderName";
});
私はカストムミドルウェアを作成し、私の方法を使用するにはjsonか、標準を使用するかどうかを確認する必要があります。_antiforgery.ValidateRequestAsync(context); しかしそれについてまだよく分からない。このようなものhttps://github.com/aspnet/Antiforgery/blob/dev/samples/AntiforgerySample/FormPostSampleMiddleware.cs – Memfis