- - PR -
Form認証での認証後のURLについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-02-17 21:37
いつも拝見させて頂いています。
今回はFormベースでの認証について質問します。 Web.configファイルで"forms"を選択し、Formベースの 認証を行っているのですが、認証に成功した場合、 FormsAuthentication.RedirectFromLoginPageという メソッドを使用して次画面へ遷移しています。 そこで質問なのですが、このメソッドのリダイレクト先は 絶対"default.aspx"なのでしょうか?それとも別のURL を指定できるのでしょうか。どんなドキュメントを見ても それらしいのが無かったので。『"default.aspx"はリソースが 保護されている特別なファイルだから、そのファイルの読み 込み時に自分の希望するURLへ転送』ってのも考えたの ですがどうせなら1回で・・・って。 ご教授お願いします。 |
|
投稿日時: 2003-02-18 09:52
FormsAuthentication.RedirectFromLoginPageは、初めに要求されたURLに
リダイレクトされます。 ユーザがいきなりtest.aspxなんてページに接続しようとした場合、 認証ページにとんで、そこで認証に成功すると、ユーザはtest.aspxページに とばされると思います。 default.aspxにしかとばない、というのは、URLとしてページを直接 指定してなくてサイトにアクセスしたときに、default.aspxを 表示しようとして認証を要求されているためだと思います。 |
|
投稿日時: 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" というのも考えてはいます。よろしくお願いします。 |
|
投稿日時: 2003-02-19 12:57
えーっと、
なぜTopPageからRedirectつかってるのかが私には理解できません。 やりたいことがよくわからないです。 web.configでの<authorization>はどんなふうになっているのでしょうか。 もしかして何も設定してない? |
|
投稿日時: 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" へ戻るというのがしたいのです。 よろしくお願いします。 |
|
投稿日時: 2003-02-19 13:23
自己レスです。
Shuさんのご指摘とおり、"Web.Config"へ ---------------------------------- <authorization> <deny users="?" /> </authorization> ---------------------------------- を書き込むことにより解決しました。 ありがとうございました。 |
1