最近我们在 Azure 上托管的网站遇到了一个奇怪的问题。用户登录后,立即进行未认证,当用户点击任意链接进入其他页面时,会因未认证而被重定向到登录页面。它不会一直发生,但后果很严重,因为我们甚至不知道它什么时候发生,没有异常记录,只是突然失去了身份验证 昨天我在生产中遇到了这个问题,并使用Fiddler捕获了我被踢出期间的请求序列,并发现了一些异常:
我登录/my-quizzes后登陆的页面(绿色)。当我单击链接转到不同页面(“/group”链接,绿色)时,我被重定向到登录页面。在我对/my-quizzes 和/group 的请求之间,还有一些其他对 javascript、图像等的请求。奇怪的是在突出显示的“uncheckCheckBox.png”请求中,在响应中,身份验证 cookie (.SFAUTH- XXX) 和其他一些 cookie 被删除(设置为空字符串,到期日期 = 12/10/1999)。这就是后续对/group 页面的请求未经过身份验证的原因
我们的网站使用 ASP.NET MVC 构建在 Sitefinity 之上
我的问题是:
- 在这样的图像请求中删除 cookie 正常吗?这只是一个有条件的 GET 来检查图像是否被修改,这对我来说很不寻常。但我无法解释为什么会发生
- 对于如何调试 Cookie 删除问题有什么建议吗?
最佳答案
您的网站运行在多少个 Azure 实例上? 如果不止一个 - 您是否配置了 Sitefinity 负载平衡模块?
当您单击/Group 页面链接时,请求可能会转到您未经过身份验证的另一个 Azure 实例(例如,由于 LB 配置错误)。
您的应用程序池是否定期回收?这也可能是另一个原因。
关于asp.net - 在条件 GET 请求中删除 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24566363/