1
我想在一些頁面中檢查會話。爲此,我在web.config中添加了我想要檢查的頁面名稱,作爲appsetting
鍵。 我想使用httpHandler在發現會話爲空或其他事件後觸發事件。可以舉報事件嗎?
如果我創建httpHandler作爲一個dll(另一個項目)並添加到一個網站,處理程序可以觸發一個事件和網站在網頁中捕獲它?
我想在一些頁面中檢查會話。爲此,我在web.config中添加了我想要檢查的頁面名稱,作爲appsetting
鍵。 我想使用httpHandler在發現會話爲空或其他事件後觸發事件。可以舉報事件嗎?
如果我創建httpHandler作爲一個dll(另一個項目)並添加到一個網站,處理程序可以觸發一個事件和網站在網頁中捕獲它?
你可以做的是這樣的:
你的HttpHandler把一個值HttpContext.Current.Items
集合中告訴如果有會話與否。喜歡的東西
HttpContext.Current.Items.Add("SessionWasThere") = true;
您創建檢查在Page_Load
事件價值,提出了一個新的事件,告訴這樣一個BasePage的:
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);
}
}
在您的網頁,你suscribe該事件:
public class MyPage : BasePage{
protected override void OnInit(){
NoSession += Page_NoSession;
}
private void Page_NoSession(object sender, EventArgs e) {
//...
}
}
網頁由頁面處理程序處理。他可以在'Application_PostAcquireRequestState'中使用'HttpModule'做一些事情。否則,使用自定義事件的自定義頁面類的建議聽起來是可行的。 – user1429080 2012-08-14 09:05:21