为什么MVC Anti-Forgery令牌不能跨子域工作?

时间:2016-07-17 06:08:32

标签: asp.net-mvc asp.net-mvc-5 antiforgerytoken

我运行的系统有2个子域,如下所示。

  • authentication.mydomain.com

  • application.mydomain.com

两者都是MVC应用程序,我们为站点成员身份设置了ASP.NET身份。所有与注册/会员相关的处理都在authentication.mydomain.com处理,并且登录/注销过程也应该在此服务器中。

我们在web.config中的两个服务器中都设置了相同的机器密钥,并且身份验证cookie设置为父域。因此,跨子域授权可以正常运行。但是我们需要使用Anti-Forgery令牌从应用程序域到身份验证域实现POST,这不起作用,我收到以下错误。

防伪Cookie令牌和表单字段令牌不匹配。

我做错了什么。如何让它跨子域工作?

1 个答案:

答案 0 :(得分:0)

我相信你需要在config中设置CookieName属性。请查看此帖子ASP.NET MVC anti-forgery token demystified