我们随机获得"防伪cookie令牌和表单字段令牌不匹配"我们在Azure中托管的网站在错误登录中显示错误。在意识到我们需要一个静态机器密钥后,我们使用validationKey和decryptionKey属性将其添加到web.config中,但是,我们仍然会弹出随机错误。
只是为了定义我对"随机"的使用在这里,每提供约200-300份表格,这种情况发生一次或两次。只是觉得发生了太多事情,这对我们信任我们服务的客户来说是一个真正的中断。
我想到的另一个想法是,这是否发生在没有启用cookie的机器上。我还没有能够以这种或那种方式验证,但我不知道cookie是否是ValidateAntiForgeryToken工作的要求。如果它确实需要cookie,那么我们是否应该向用户发出消息,让他们知道正确使用cookie是必需的?
我可以使用帮助来诊断这个或其他如何处理这个问题的想法。
提前谢谢。
[更新]我刚从用户那里听到这个错误弹出窗口。事实证明,他们加载页面并走了一段时间导致错误。这是一个好消息,因为这意味着验证正在完成其工作并且没有发生任何疯狂......我只需要验证该数据点是否表示其余用户。那么,鉴于此,你们如何处理令牌到期的情况?您是否以干净的方式通知用户?
答案 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
}