如果我有2个ASP.NET MVC站点(可能在单独的服务器上)并且我想在站点A上显示POST到站点B上的操作的表单,是否可以共享AntiForgeryToken设置,以便如果站点A包括在表单上的AntiForgeryToken,它将成功通过站点B上的Anti Forgery验证检查?
因此,在网站A中,该网页的表单的操作设置为Site B Url,其中包含:
@Html.AntiForgeryToken()
在网站B上,它将发布的动作装饰有:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
这里的情况是我们需要允许从站点A上的表单登录站点B.
如果可以的话,我们应该注意其他问题吗?
答案 0 :(得分:3)
@Html.AntiForgeryToken()
助手和[ValidateAntiForgeryToken]
属性的全部目的是阻止用户从其他域提交表单。
要做到这一点,防伪令牌使用cookies。由于您无法在多个域中共享Cookie,因此无法在站点B上访问您站点A上创建的Cookie。
因此,我认为你想要实现的目标是不可能的。