我如何注入 AntiForgery 令牌?
How can i inject the AntiForgery token?
在我的 _Layout.cshtml
中使用
@using Microsoft.AspNetCore.Antiforgery
@inject IAntiforgery AntiForgery;
我希望 RequestVerificationToken
出现在请求 headers 中。
但是没有达到预期。在检查请求 headers 时,
RequestVerificationToken
根本不存在。
这是否与 net Core 3.0
有某种关系,还是我遗漏了什么?
如果您使用 ajax 查询发送 antiforgeryToken,请按照以下步骤操作。否则 RequestVerificationToken 将自动添加到 formData
将以下内容添加到您的 cshtml 和 js
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf
@functions{
public string GetAntiXsrfRequestToken()
{
return Xsrf.GetAndStoreTokens(Context).RequestToken;
}
}
<form>
<input type="hidden" id="RequestVerificationToken"
name="RequestVerificationToken" value="@GetAntiXsrfRequestToken()" />
</form>
将此添加到您的 XMLHttpRequest 实例
xhttp.setRequestHeader("RequestVerificationToken",
document.getElementById('RequestVerificationToken').value);
在我的 _Layout.cshtml
@using Microsoft.AspNetCore.Antiforgery
@inject IAntiforgery AntiForgery;
我希望 RequestVerificationToken
出现在请求 headers 中。
但是没有达到预期。在检查请求 headers 时,
RequestVerificationToken
根本不存在。
这是否与 net Core 3.0
有某种关系,还是我遗漏了什么?
如果您使用 ajax 查询发送 antiforgeryToken,请按照以下步骤操作。否则 RequestVerificationToken 将自动添加到 formData
将以下内容添加到您的 cshtml 和 js
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf
@functions{
public string GetAntiXsrfRequestToken()
{
return Xsrf.GetAndStoreTokens(Context).RequestToken;
}
}
<form>
<input type="hidden" id="RequestVerificationToken"
name="RequestVerificationToken" value="@GetAntiXsrfRequestToken()" />
</form>
将此添加到您的 XMLHttpRequest 实例
xhttp.setRequestHeader("RequestVerificationToken",
document.getElementById('RequestVerificationToken').value);