夜的第七章

WEB开发个人博客。

« 关于it创业可行性的测试公式动态填充的select在IE7下堆成一堆的解决 »

请求的窗体身份验证失败。 原因: 提供的票证已过期和窗体身份验证请求不定向到loginUrl 页面的问题解决

Web程序出现登陆不进去,退出又退不出去,查看windows日志会有:请求的窗体身份验证失败。 原因: 提供的票证已过期。

原因:

当服务器上的多个使用forms验证的ASP.NET应用程序使用了相同的cookie名称、cookie路径、machinekey时,会导致此问题出现。

当cookie名称相同时:
当一个应用程序通过验证时,cookie就保存在HttpResponse.Cookie中,如果有别的应用程序过来,就会读取到这个cookie,从而通过验证。

当cookie路径相同时:
默认的cookie路径都是"/",所以相同的应用程序的cookie默认的存放路径都一样……

machinekey相同时:
machinekey用来对forms验证的请求进行加密解密的,如果多个应用程序machinekey相同的话,应用程序A发送的加密的form验证会被应用程序B解密从而接收。

要解决此问题,要防止以上3个同时相同即可。

 

参考文献:http://support.microsoft.com/kb/313116/en-us?fr=1

中文的自动翻译:http://support.microsoft.com/kb/313116

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。



[2007 - 2011] © Leadnt.com