我正在使用带有ASP.NET MVC4 + Web API项目的angular 1.0.4。我试图利用angular的CSRF保护无济于事。我可以看到我正在传递一个名为XSRF-TOKEN的cookie,但是当angular尝试将值添加为响应中名为X-XSRF-TOKEN的头时,该值显示为undefined。我尝试遵循建议here,但HTML尚未呈现,因此找不到任何元素。
我可能会缺少什么? ASP.NET MVC生成的RequestVerificationToken cookie是否受到javascript访问保护?
此外,是否可以让角度懒惰地检索cookie或表单输入值?如果是这样,怎么样?我找不到任何关于如何做到这一点的文档。
答案 0 :(得分:1)
我无法找到问题的确切答案。我最终创建了一个服务来查找'input [name =“__ RequestVerificationToken”]',获取它的值,并返回一个具有该值的对象。然后我使用该对象在配置中设置标头。这让我可以懒惰地提取并附加值作为页面的标题,该表单不会立即显示在页面上。
在进一步审查后,我还意识到ASP.NET的AntiForgeryToken支持需要cookie和表单输入/标头值进行验证,因此内置的AngularJS支持无论如何都不够。
如果有人有更好的解决方案,我很乐意将答案转移到该解决方案。