1

一部のページでセッションを確認したい。これを行うには、web.config 内で確認するページ名をappsettingキーとして追加します。セッションが空であることが判明した後、イベントを発生させて httpHandler を使用したいと考えています。

httpHandler を dll (別のプロジェクト) として作成し、Web サイトに追加した場合、ハンドラーがイベントを起動し、Web サイトが Web ページ内でイベントをキャプチャできますか?

4

1 に答える 1

0

あなたができることはこれです:

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);
    }
}

ページで、そのイベントを購読します。

public class MyPage : BasePage{

    protected override void OnInit(){
        NoSession += Page_NoSession;
    }

    private void Page_NoSession(object sender, EventArgs e) {
        //...
    }
}
于 2012-08-13T13:26:40.113 に答える