Atlas的UpdatePanel会影响Cookie?

来源:互联网 发布:淘宝小叶紫檀是真的吗 编辑:程序博客网 时间:2024/04/30 08:20

遇到一个狂郁闷的问题。大概是这样的:

我的网站采用Form验证,因此有一个Login页,一个使用了Atlas UpdatePanel的不刷新页面(暂称之为atlas页),其他一系列其他页面。还有一个自定义控件myLoginStatus,包含在每一页中。其中,在Atlas页中,myLoginStatus也被包含在了atlas页的UpdatePanel中(一个MasterPage设计错误,不想改了,也因此发现了这个郁闷的问题)。

现在我想加入自动登录功能,简单的说就是使用Cookie记住用户信息。基本的过程应该是:
1. 登录时创建此cookie
2. 在每个需要身份验证的页面检查此cookie是否存在,如果存在则使用此cookie建立身份票据
3.用户点击“注销”时删除此cookie

由于我对Form验证进行了一些扩展,因此没有采用标准的2.0 提供的Login系列控件,而是使用手工编程的方式调用Membership/FormsAuthentication等,所以只能自己处理。本来应该是一个很简单的问题,但问题来了:在其他页面注销的时候都能够正常清除cookie,跳转到default页,但从atlas页注销,跳转到default页后,cookie仍然存在,因此处于登录状态!

通过打开trace跟踪,发现在atlas页注销时,确实也执行了cookie的清除代码,Response集合中也含有该cookie(清除cookie是通过设定cookie.Expires并加到Response集合实现),但实际上根本没起作用!

我听有朋友说过Atlas有些自以为是,喜欢接管一些不该管的东西,难道这一次又是Atlas帮的倒忙?这个问题还没搞明白,进一步研究中。