2011-07-24 11 views
0

私はwebformsアプリケーションを持っています。私のウェブサイトのほとんどすべてのページはログインによって保護されています。現在、すべてのフォームのPage_Loadイベントにセッションが存在するかどうかをチェックしています。すべてのページに適用されるただ1つの場所でそれを行うことができる方法はありますか?中央の場所でセッションを確認する方法

+0

ご覧ください。ユーザーがセッション変数を介してログインしているかどうか確認していますか?あなたがいるなら、はるかに優れた方法が組み込まれています。 (FormsAuthenticationなど) – rkw

答えて

3

Web.UI.Pageから継承するクラスを作成します。そのクラスでは、Page_Loadのイベントを作成し、セッションをチェックするコードを記述します。次に、ログインによって保護されるすべてのページで、作成したクラスを継承させます。

+0

私は作成したsessionCheckクラスでpage_loadイベントを作成する必要がありますか? sessionCheckクラスから継承する実際のページではありませんか? – Riz

+0

あなたはそのイベントを両方で行うことができます。しかし、ページから継承するクラスでは、Page_Loadイベントでセッションのログインを確認します。 – TheGeekYouNeed

+0

しかし、両方でpage_loadイベントを追加すると、Baseクラスのpage_loadイベントは発生しません。 – Riz

0

最もよい方法は、抽象的なページ(SessionedPageBase)を定義し、他のすべてのページをそのページから継承させることです。

個々のページPage_Loadの最初のものをベースのPage_Loadにコールするか、より良い方法でイベントを作成することができます(他の回答に示唆されているように)。

+0

クラスにイベントを作成する方法は?あなたは私に例を教えてもらえますか? – Riz

+0

両方でpage_loadイベントを追加すると、Baseクラスのpage_loadイベントは発生しません。 – Riz

0

@rkwのコメントで示唆されているように、独自のカスタムメカニズムではなくフォーム認証を使用する方が良いかもしれないと思います。

フォーム認証を使用する場合は、web.configのエントリを使用して保護されるページを指定できます。フォーム認証の入門用

は、TheGeekはあなたの質問への答えを持っていhttp://www.4guysfromrolla.com/webtech/110701-1.shtml

関連する問題