我有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吗?