具有MasterPage的视图上的多个AntiForgeryTokens

Pag*_*age 4 security asp.net-mvc

有没有人必须在母版页的子视图上处理多个AntiForgeryTokens?我正在考虑的场景如下:

  • 该视图包含一个表单,其中AntiForgeryToken呈现为隐藏字段.
  • 该视图包含一个具有另一个AJAX提交表单的母版页.

这里的问题是我需要在表单中封装隐藏字段,同时,我需要在母版页中的AJAX提交表单上呈现另一个令牌以进行提交.我无法做出任何假设,因为子页面上可能没有表单,因此将在子页面中呈现令牌.

我的第一个想法是为所有帖子使用的整个页面呈现单个全局AntiForgeryToken,但随后隐藏输入字段将位于表单之外,表单将不会发布标记.

谢谢你的建议!

Lev*_*evi 8

应该可以在每个表单中单独呈现Html.AntiForgeryToken().运行时的设计考虑了这种情况.第一次调用AntiForgeryToken()会设置一个标记,说"我已设置令牌,对此请求的任何其他调用都应使用相同的令牌值."