gpt4 book ai didi

c# - 在 .net mvc 和 angular 中生成 csrf token 时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-03 23:27:48 60 4
gpt4 key购买 nike

我正在遵循本指南:

http://www.asp.net/web-api/overview/security/preventing-cross-site-request-forgery-(csrf)-attacks

我已将此代码段添加到我的 index.cshtml 的顶部

<script>
@functions{
public string TokenHeaderValue()
{
string cookieToken, formToken;
AntiForgery.GetTokens(null, out cookieToken, out formToken);
return cookieToken + ":" + formToken;
}
}
</script>

问题是当我运行应用程序并检查页面时 - 我看到的只是一个空脚本标记。

将这段代码添加到我的 $http 请求中:

headers: {
'RequestVerificationToken': '@TokenHeaderValue()'
}

除了将字符串“@TokenHeaderValue()”添加到 header 之外什么都不做。

整个应用程序是一个使用 Angular 的 SPA。唯一的 .cshtml 文件是引导 Angular 并包含样式等的索引。

我在这里错过了什么?

最佳答案

我能够通过将 token 设置为变量然后在 $http 请求期间引用 token 来解决我的问题。

<script>
@functions{
public string TokenHeaderValue()
{
string cookieToken, formToken;
AntiForgery.GetTokens(null, out cookieToken, out formToken);
return cookieToken + ":" + formToken;
}
}

var csrfToken = '@TokenHeaderValue()';
</script>

然后在我的 Angular 服务中:

return $http.post('/api/httpRequest1', {
headers: {'RequestVerificationToken': csrfToken}
);

这个方法现在对我来说效果很好。对于以后阅读本文的任何人,这是我找到的另一个解决方案:http://blog.novanet.no/anti-forgery-tokens-using-mvc-web-api-and-angularjs

关于c# - 在 .net mvc 和 angular 中生成 csrf token 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33287004/

60 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com