- - PR -
[ASP.net]ページ制御
投稿者 | 投稿内容 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-04-21 13:03
その部分周辺のコードがあればなにかわかるかも。 _________________ たつごろー codeseek こみゅぷらす | ||||||||||||||||||||||||
|
投稿日時: 2005-04-21 13:36
たつごろーさん、返信ありがとうございます。
コードはこんな感じです。 private static Login login; private void Page_Load(object sender, System.EventArgs e) { login = (Login)Session["Login"]; if(login==null) { Response.Redirect("Login.aspx"); } } Login.csというクラスファイルがあり、 ログイン時に認証OKであれば、 Loginクラスに社員コード、社員名等を入れ、 セッションでクラスを保持しています。 各画面のPageLoadイベントでこのセッションが あるか確認するようにしました。 今自分でコードを見て一つ気づいたのですが、 毎回PageLoadイベントでこの処理を行なうのではなく、 if(!IsPostBack)で、ポストバックではないときのみ この処理を行なったほうがいいのでしょうか。 宜しくお願いします。 | ||||||||||||||||||||||||
|
投稿日時: 2005-04-21 14:20
認証画面に飛ばなかったのは、同じIEのインスタンスを気づかないまま使ったからではないでしょうか。
そうだとすると、Sessionはそれらで共有されますので、当然そういう挙動になります。 IEから[ファイル]->[新規作成]->[ウィンドウ] で作った新しいウィンドウから再現できるはずです。
ASP.NETでは、staticは使わないほうがいいです。
そう思うだけの知識があるのですから、たぶん、そうしたほうがいいと思います。 この部分は、前後関係や設定にかかわるので、単純な回答ができないところです。 _________________ たつごろー codeseek こみゅぷらす | ||||||||||||||||||||||||
|
投稿日時: 2005-04-21 14:53
たつごろーさん、返信ありがとうございます。
ということは、新しいウィンドウから実行すれば、 理屈上、認証画面に必ず飛ぶということでしょうか。。。?
・・・それは何ゆえにですか? private Login login; に変更した方がいいのでしょうか。。。?
通常、一般論として、セッションを使用した認証はポストバック ではない場合にするのでしょうか。 質問攻めですみません。。。 [ メッセージ編集済み 編集者: hana 編集日時 2005-04-21 14:54 ] | ||||||||||||||||||||||||
|
投稿日時: 2005-04-21 15:11
私から「必ず」という保障はできません。 ざっと検索したものだけど、このへんを読むといいかも。 http://support.microsoft.com/default.aspx?scid=kb;ja;300883 お勧めの本 .NETエンタープライズWebアプリケーション開発技術大全シリーズ 〈Vol.3〉ASP.NET応用編 http://www.codeseek.net/think/OsusumeBook.htm
では、逆に質問、 なぜstaticにしたのですか。 ASP.NETでのstaticについては、過去ログにも議論がありますので、検索してみてはいかがでしょう。
いいえ。そう断言できません。 そのプログラム全体もかかわってきます。 ただ、いえることは、変数のスコープと生存期間は、適切な範囲でかつ小さいほうがよい、ということ。
いいえ。 ポストバックされたときにもSessionが残っているとは断言できないからです。
回答は自分自身のためにしていますので、質問は大歓迎なんです。 _________________ たつごろー codeseek こみゅぷらす | ||||||||||||||||||||||||
|
投稿日時: 2005-04-21 18:00
あと、Sessionにいれるのは、プリミティブ型か、シリアル化できるオブジェクトの方がよいです。
_________________ たつごろー codeseek こみゅぷらす |