我想在某些页面中查看Session。为此,我将要在web.config中检查的页面名称添加为appsetting
键。
我想使用httpHandler在发现会话为空或其他事件后触发事件。
如果我将httpHandler创建为dll(另一个项目)并添加到网站,处理程序可以触发事件并将网站捕获到网页中吗?
答案 0 :(得分:0)
你可以做的是:
你的HttpHandler在HttpContext.Current.Items
集合中放置一个值,告诉你是否有Session。像
HttpContext.Current.Items.Add("SessionWasThere") = true;
您创建了一个BasePage,用于检查Page_Load
事件中的值并提出一个新事件,告诉他们:
public abstract class BasePage : Page {
public event EventHandler NoSession;
protected override void OnLoad(EventArgs e){
var sessionWasThere = (bool)HttpContext.Current.Items.Add("SessionWasThere");
if(!sessionWasThere && NoSession != null)
NoSession(this, EventArgs.Empty);
}
}
在您的页面中,您可以接受该事件:
public class MyPage : BasePage{
protected override void OnInit(){
NoSession += Page_NoSession;
}
private void Page_NoSession(object sender, EventArgs e) {
//...
}
}