- PR -

Form認証での認証後のURLについて

1
投稿者投稿内容
ttcoupe
大ベテラン
会議室デビュー日: 2003/01/17
投稿数: 116
お住まい・勤務地: 大阪市
投稿日時: 2003-02-17 21:37
いつも拝見させて頂いています。

今回はFormベースでの認証について質問します。
Web.configファイルで"forms"を選択し、Formベースの
認証を行っているのですが、認証に成功した場合、
FormsAuthentication.RedirectFromLoginPageという
メソッドを使用して次画面へ遷移しています。
そこで質問なのですが、このメソッドのリダイレクト先は
絶対"default.aspx"なのでしょうか?それとも別のURL
を指定できるのでしょうか。どんなドキュメントを見ても
それらしいのが無かったので。『"default.aspx"はリソースが
保護されている特別なファイルだから、そのファイルの読み
込み時に自分の希望するURLへ転送』ってのも考えたの
ですがどうせなら1回で・・・って。

ご教授お願いします。
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2003-02-18 09:52
FormsAuthentication.RedirectFromLoginPageは、初めに要求されたURLに
リダイレクトされます。
ユーザがいきなりtest.aspxなんてページに接続しようとした場合、
認証ページにとんで、そこで認証に成功すると、ユーザはtest.aspxページに
とばされると思います。
default.aspxにしかとばない、というのは、URLとしてページを直接
指定してなくてサイトにアクセスしたときに、default.aspxを
表示しようとして認証を要求されているためだと思います。
ttcoupe
大ベテラン
会議室デビュー日: 2003/01/17
投稿数: 116
お住まい・勤務地: 大阪市
投稿日時: 2003-02-19 10:44
Shuさんありがとうございます。

ソースを"TopPage.aspx"なるページから"Login.aspx"へ遷移して、
ユーザ認証後、要求元の"TopPage.aspx"へ戻るよう変更をしたのですが
またしても"default.aspx"へ遷移しようとしています。
以下にそのソースを書きます。

Web.config
------------------------------------
<authentication mode="Forms">
<forms loginUrl="LoginPage.aspx" timeout="10"/>
</authentication>
------------------------------------

LoginPage.aspxのログインボタンでのイベント
------------------------------------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If (CustomAuthenticate(UserName.Text, Password.Text)) Then
FormsAuthentication.RedirectFromLoginPage(UserName.Text, Persistent.Checked)
Else
Output.Text = "Invalid login"
End If
End Sub
------------------------------------

TopPage.aspxでLoginPage.aspxページ要求する
------------------------------------
'Redirect方式
Dim SendArg As String

SendArg = "LoginPage.aspx"
Response.Redirect(SendArg)
End Sub
------------------------------------

です。
希望としましては "LoginPage.aspx" → "TopPage.aspx"です。
ですが"TopPage.aspx" → "LoginPage.aspx" → "TopPage.aspx"
というのも考えてはいます。よろしくお願いします。
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2003-02-19 12:57
えーっと、
なぜTopPageからRedirectつかってるのかが私には理解できません。
やりたいことがよくわからないです。

web.configでの<authorization>はどんなふうになっているのでしょうか。
もしかして何も設定してない?
ttcoupe
大ベテラン
会議室デビュー日: 2003/01/17
投稿数: 116
お住まい・勤務地: 大阪市
投稿日時: 2003-02-19 13:12
Shuさんお世話になります。

Web.Configでの<authorization>は何もしてないです。
----------------------------------------------
<authorization>
<allow users="*" /> <!-- 全ユーザーへの許可 -->

<!-- <allow users="[ユーザーのカンマ区切り一覧]"
roles="[ユーザーのカンマ区切り一覧]"/>
<deny users="[ユーザーのカンマ区切り一覧]"
roles="[ユーザーのカンマ区切り一覧]"/>
-->
</authorization>
----------------------------------------------

一応DBでユーザの確認を"CustomAuthenticate"という関数を
作って行っています。
この場合の<authorization>の設定はどのようにするのが適切なので
しょうか。

またTopPageからRedirectをしているのは単に画面遷移をしたいだけ
なのです。
私の理想のイメージはユーザ認証がされていないユーザが"TopPage.aspx"
を呼び出すと"LoginPage.aspx"へ遷移してユーザ認証後"TopPage.aspx"
へ戻るというのがしたいのです。
よろしくお願いします。
ttcoupe
大ベテラン
会議室デビュー日: 2003/01/17
投稿数: 116
お住まい・勤務地: 大阪市
投稿日時: 2003-02-19 13:23
自己レスです。

Shuさんのご指摘とおり、"Web.Config"へ
----------------------------------
<authorization>
<deny users="?" />
</authorization>
----------------------------------
を書き込むことにより解決しました。
ありがとうございました。
1

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