我正在将 Angular 1.0.4 与 ASP.NET MVC4 + Web API 项目一起使用。我试图利用 Angular 的 CSRF 保护,但没有成功。我可以看到我正在传递一个名为 XSRF-TOKEN 的 cookie,但是当 Angular 尝试将该值添加为响应中名为 X-XSRF-TOKEN 的标头时,该值显示为未定义。我尝试遵循建议here,但 HTML 尚未呈现,因此未找到任何元素。
我可能会缺少什么? ASP.NET MVC 生成的 RequestVerificationToken cookie 是否受到 JavaScript 访问的保护?
另外,是否可以让 Angular 延迟检索 cookie 或表单输入值?如果是这样,怎么办?我找不到任何有关如何执行此操作的文档。
我找不到我的问题的确切答案。我最终创建了一个服务来查找“input[name="__RequestVerificationToken"]”,获取其值,并返回具有该值的对象。然后我使用该对象在配置中设置标头。这让我可以懒洋洋地提取值并将其附加为不会立即出现在页面上的表单的标题。
经过进一步审查,我还意识到 ASP.NET 的 AntiForgeryToken 支持需要 cookie 和表单输入/标头值进行验证,因此内置的 AngularJS 支持无论如何都不够。
如果有人有更好的解决方案,我很乐意将答案转移到该解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)