0

如果我有 2 个 ASP.NET MVC 站点(可能在单独的服务器上)并且我想在站点 A 上显示一个表单,该表单发布到站点 B 上的操作,是否可以共享 AntiForgeryToken 设置,以便如果站点 A 包含 AntiForgeryToken一个表单,它会成功通过站点 B 上的防伪验证检查吗?

因此,在站点 A 中,页面有一个表单,其操作设置为站点 B 网址,其中:

@Html.AntiForgeryToken() 

在站点 B 上,它将发布到的操作装饰有:

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]

这里的场景是我们需要允许从站点 A 上的表单登录到站点 B。

如果这是可能的,还有其他我们应该注意的问题吗?

4

1 回答 1

4

@Html.AntiForgeryToken()helper 和属性的全部目的[ValidateAntiForgeryToken]是防止用户从另一个域提交表单。

为此,防伪令牌使用 cookie。由于您不能跨多个域共享 cookie,因此在站点 A 上创建的 cookie 将无法在站点 B 上访问。

因此,我认为您想要实现的目标是不可能的。

于 2013-09-20T00:55:45.537 回答