Anti-forgery密钥如何在跨域验证

时间:2015-10-05 10:15:26

标签: asp.net asp.net-mvc asp.net-web-api iis-express

我有2个项目。

1.[MVC.Presentation] (https://localhost:44304)
      |__Login.cshtml
            |__AntiForgery.GetTokens(null, out cookieToken, out formToken)

GetTokens函数用于生成防伪令牌。任何其他项目都不会放弃此过程,因为它可以在其他服务关闭时生成反伪造令牌。

2.[WebApi.TokenService] (https://localhost:44305)
      |__ValidateAntiForgeryTokenAttribute
             |___AntiForgery.Validate(cookieToken, formToken);
每当收到请求时,

WebApi.TokenService都会验证防伪令牌密钥 这两个项目都运作良好。

但我的问题是,

WebApi.TokenService项目如何知道更正后的防伪令牌,因为防伪令牌是由名为MVC.Presentation的其他项目生成的?

更详细地说,两个项目都在不同的域上单独运行。
当我使用假令牌进行测试时,Antiforgery.Validate函数确实知道我的令牌未得到纠正。

那么他们怎么能互相认识呢?

这是因为Machine key吗?

0 个答案:

没有答案