- - PR -
ログイン画面を通らずにページを表示しようとした場合の制御について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-09-12 14:42
毎々お世話になっております。
ASP.NETで開発をしています。 Webアプリケーションでログイン画面を設置し、必ずログイン画面を通る仕様になっています。ここでアドレスバーからURLを打ち込んだり、お気に入りに追加した場合の制御が必要です。 現在実現している方法は「HttpRequest.UrlReferrer」を使用し前回使用した画面の有無により制御していますが制御が出来ないパターンが2つほどあります 1. 今回の仕様ではJavaScriptのWindow.Openを使用した別ウィンドウに表示する場合も有り、この場合、「HttpRequest.UrlReferrer」はNULLとなります。 2. ログイン画面の前にはIPによるアプリケーションの使用権限があるかをチェックする画面があります。その画面は表示せずIPのチェックをし、ログイン画面に遷移します。 この場合も「HttpRequest.UrlReferrer」は取得できませんでした。 上記の2点についても制御を行いたいのですが、DBやクエリ文字列等方法を検討しましたが実現方法がわかりませんでした。 わかる方がいらっしゃいましたら教えてください。 | ||||
|
投稿日時: 2003-09-12 15:06
こんにちは。
ログイン時にSessionを作ってあげて、 各画面のPage_Loadにセッションチェック処理を入れてあげては如何でしょうか? 例:【ログイン時】 Session("aaa") = LoginData 【各画面のPage_Load】 If Session.Count = 0 Then Response.Redirect("Login.aspx") End If ただし、Sessionを使用する際はWeb.configのsessionStateでTimeOutなどの 設定を行う必要があります。 | ||||
|
投稿日時: 2003-09-12 15:11
ありがとうございます
私の説明が足りませんでした。サーバの構成上、セッション変数は使用を禁止されています。WEB/APサーバは複数台あり、ロードバランサを使用するためです。申しわけありません。 | ||||
|
投稿日時: 2003-09-12 15:35
ASP.NETなら、複数台のサーバのセッションを1台のマシンで管理したり、
SQLサーバで管理したりできるはずなので、そういった設定にして セッション変数を使えるようにする、というのも1つの方法かもしれません。 | ||||
|
投稿日時: 2003-09-12 15:42
確か、ロードバランサでセッション管理できませんでしたっけ?
(曖昧な記憶しか残っていないので間違えてたらごめんなさい・・・) | ||||
|
投稿日時: 2003-09-12 16:01
ユーザーの認証後にCookieを使って、認証されているユーザーにチケットを発行するのです
が、FormsAuthenticationって使えないでしょうか? web.configに <authentication mode="Forms"> <forms loginUrl = "WebForm1.aspx"/> </authentication> <authorization> <deny users="?" /> </authorization> とすれば、直接URLをたたいても、WebForm1.aspxにリダイレクトされます。 ヘルプでFormsAuthenticationを検索すると例があると思います。 見当違いでしたらすいません。 | ||||
|
投稿日時: 2003-09-16 09:19
いろいろとご意見ありがとうございます。
セッションの使用に関しては、やはり使用を禁止されているのでFormsAuthenticationについて調べて見たいと思います。 ありがとうございます。 | ||||
|
投稿日時: 2003-09-16 13:25
当然ですが、ロードバランサを使用してもセッションは使用できますよ。 セッション禁止の理由がロードバランサを使用するためとは思えないです。 何故、セッションを使用してはいけないのか、上司等に確認した方が良いでしょう。 |
1