Asp.net web api 单击电子邮件链接时出现CSRF令牌不匹配错误

Asp.net web api 单击电子邮件链接时出现CSRF令牌不匹配错误,asp.net-web-api,csrf,csrf-protection,Asp.net Web Api,Csrf,Csrf Protection,应用程序是在WebAPI中开发的。我们正在对xyz.com中的所有POST调用使用反伪造令牌验证。注册的xyz.com用户会收到有关其注册内容的电子邮件通知。用户单击电子邮件中的项目以查看内容详细信息。单击项目时,first click事件将保存在SilverPop中,SilverPop将重定向到xyz.com中的实际内容。在基于少量查询字符串参数对用户进行身份验证后,加载“详细信息”页面时,不会出现任何问题。问题是当用户发出post呼叫(保存以备以后使用、图书标记等)时,应用程序抛出反伪造令牌

应用程序是在WebAPI中开发的。我们正在对xyz.com中的所有POST调用使用反伪造令牌验证。注册的xyz.com用户会收到有关其注册内容的电子邮件通知。用户单击电子邮件中的项目以查看内容详细信息。单击项目时,first click事件将保存在SilverPop中,SilverPop将重定向到xyz.com中的实际内容。在基于少量查询字符串参数对用户进行身份验证后,加载“详细信息”页面时,不会出现任何问题。问题是当用户发出post呼叫(保存以备以后使用、图书标记等)时,应用程序抛出反伪造令牌不匹配错误。对不起,英语不好,问题又长。这个问题的奇怪之处在于,我们无法复制这个错误,而且错误的发生并不一致。我们有两个服务器和一个负载平衡托管在AWS中,没有启用粘性会话。使用表单cookie身份验证。最后,尽管我们使用1台服务器运行,但这个问题仍然存在。谢谢你的阅读,如果有人能帮忙,我将不胜感激


*用户必须经过身份验证才能验证CSRF令牌?此xyz.com很少进行api get和post调用。

我们使用一个节点(服务器)和无负载平衡器测试的可能重复,但这并没有解决问题电子邮件中的链接是否包含防伪令牌?否,url中的链接包含与用户相关的加密信息。单击电子邮件并访问xyz.com,应用程序将从URL读取数据,并提供权限非常有限的身份验证票证。听起来您的machineKey正在从电子邮件发送时更改为服务器的状态。根据链接设置静态
,使用此键发送新电子邮件,然后在不使用负载平衡器的情况下对同一服务器进行测试。