随机"防伪cookie令牌和表单字段令牌不匹配"在Azure

时间:2016-10-26 14:06:59

标签: asp.net-mvc azure antiforgerytoken

我们随机获得"防伪cookie令牌和表单字段令牌不匹配"我们在Azure中托管的网站在错误登录中显示错误。在意识到我们需要一个静态机器密钥后,我们使用validationKey和decryptionKey属性将其添加到web.config中,但是,我们仍然会弹出随机错误。

只是为了定义我对"随机"的使用在这里,每提供约200-300份表格,这种情况发生一次或两次。只是觉得发生了太多事情,这对我们信任我们服务的客户来说是一个真正的中断。

我想到的另一个想法是,这是否发生在没有启用cookie的机器上。我还没有能够以这种或那种方式验证,但我不知道cookie是否是ValidateAntiForgeryToken工作的要求。如果它确实需要cookie,那么我们是否应该向用户发出消息,让他们知道正确使用cookie是必需的?

我可以使用帮助来诊断这个或其他如何处理这个问题的想法。

提前谢谢。

[更新]我刚从用户那里听到这个错误弹出窗口。事实证明,他们加载页面并走了一段时间导致错误。这是一个好消息,因为这意味着验证正在完成其工作并且没有发生任何疯狂......我只需要验证该数据点是否表示其余用户。那么,鉴于此,你们如何处理令牌到期的情况?您是否以干净的方式通知用户?

2 个答案:

答案 0 :(得分:0)

您有服务器场吗?即,您是否启用了自动缩放的应用服务?或者有多台机器的云服务?

如果是,请检查所有web.config文件中是否定义了所有机器密钥的值相同。 machinekey用于生成AntiForgery令牌。

答案 1 :(得分:0)

您可以记录失败请求的标头吗?您可以在Application_Error上的global.asax中添加一些代码,如:

foreach (string header in request.Headers)
{
     // header <== header name
     // request.Headers[header]) <== header value
 }