- PR -

ログイン画面を通らずにページを表示しようとした場合の制御について

1
投稿者投稿内容
けぃ
常連さん
会議室デビュー日: 2003/01/23
投稿数: 26
投稿日時: 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やクエリ文字列等方法を検討しましたが実現方法がわかりませんでした。
わかる方がいらっしゃいましたら教えてください。

まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 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/01/23
投稿数: 26
投稿日時: 2003-09-12 15:11
ありがとうございます

私の説明が足りませんでした。サーバの構成上、セッション変数は使用を禁止されています。WEB/APサーバは複数台あり、ロードバランサを使用するためです。申しわけありません。
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2003-09-12 15:35
ASP.NETなら、複数台のサーバのセッションを1台のマシンで管理したり、
SQLサーバで管理したりできるはずなので、そういった設定にして
セッション変数を使えるようにする、というのも1つの方法かもしれません。
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-09-12 15:42
確か、ロードバランサでセッション管理できませんでしたっけ?
(曖昧な記憶しか残っていないので間違えてたらごめんなさい・・・)
yoo
会議室デビュー日: 2003/04/03
投稿数: 12
投稿日時: 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/01/23
投稿数: 26
投稿日時: 2003-09-16 09:19
いろいろとご意見ありがとうございます。

セッションの使用に関しては、やはり使用を禁止されているのでFormsAuthenticationについて調べて見たいと思います。
ありがとうございます。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-09-16 13:25
引用:

まゆりんさんの書き込み (2003-09-12 15:42) より:
確か、ロードバランサでセッション管理できませんでしたっけ?
(曖昧な記憶しか残っていないので間違えてたらごめんなさい・・・)


 当然ですが、ロードバランサを使用してもセッションは使用できますよ。
セッション禁止の理由がロードバランサを使用するためとは思えないです。
何故、セッションを使用してはいけないのか、上司等に確認した方が良いでしょう。
1

スキルアップ/キャリアアップ(JOB@IT)