C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[12]: URLのReturnUrl


(過去ログ 31 を表示中)

[トピック内 18 記事 (1 - 18 表示)]  << 0 >>

■15175 / inTopicNo.1)  URLのReturnUrl
  
□投稿者/ HR (1回)-(2008/03/06(Thu) 09:32:45)

分類:[ネットワーク全般] 

お世話なります。

今VB.Netで開発しているのですが、

http://localhost/keihi/Login.aspx?ReturnUrl=%2fkeihi%2fG17015.aspx?Group=5&No=SJ-08-0029&SubNo=00&BGID=G17000

というURLがあり、ReturnUrlとあるのですが、このReturnUrlとはどんなものなのでしょうか?
ネットで調べてもそれといったものがありませんでした。
性質など、簡単でも、詳しくでもいいので教えていただきたいです。
宜しくお願いします。


引用返信 編集キー/
■15177 / inTopicNo.2)  Re[1]: URLのReturnUrl
□投稿者/ Mr.T (198回)-(2008/03/06(Thu) 10:11:28)
Mr.Tです、こんにちは。

No15175 (HR さん) に返信
> お世話なります。
>
> 今VB.Netで開発しているのですが、
>
> http://localhost/keihi/Login.aspx?ReturnUrl=%2fkeihi%2fG17015.aspx?Group=5&No=SJ-08-0029&SubNo=00&BGID=G17000
>
> というURLがあり、ReturnUrlとあるのですが、このReturnUrlとはどんなものなのでしょうか?
> ネットで調べてもそれといったものがありませんでした。
> 性質など、簡単でも、詳しくでもいいので教えていただきたいです。
> 宜しくお願いします。

それは、そのシステムそのものを知っている人間でないとわかりません。

ここのReturnURLというのは、何もWeb上で汎用的なパラメータであるとか、そういうわけではなく、
単にLogin.aspxで受け取るGetパラメータのうちの一つです。

なので、リンク元にはこういうInputタグが記述されている可能性があります。
<input type="TextやらHidden" name="ReturnURL" value="%2fkeihi%2fG17015.aspx?Group=5&No=SJ-08-0029&SubNo=00&BGID=G17000"/>

引用返信 編集キー/
■15179 / inTopicNo.3)  Re[2]: URLのReturnUrl
□投稿者/ HR (2回)-(2008/03/06(Thu) 10:33:59)
Mr.Tさん 返信ありがとうございます。

今具体的に困っているところはといいますと、

ログイン画面 → G02000(通常ログイン後の画面・表示しない) → G17015(飛びたい画面)

というような順番で、読み込みを行いたいのですが、

なぜか
ログイン画面 → G17015 → G02000(通常ログイン後の画面・表示しない) → G17015

そして10回に1度くらいの頻度で、
ログイン画面 → G02000 → G17015 → G17015
の順の読み込みになります。。

ReturnUrlの性質上何かあるのかと思ったのですが。。。

予測できる範囲でいいのでご教授して頂きたいです。
引用返信 編集キー/
■15183 / inTopicNo.4)  Re[3]: URLのReturnUrl
□投稿者/ Mr.T (199回)-(2008/03/06(Thu) 12:08:24)
Mr.Tです、こんにちは。

No15179 (HR さん) に返信
> Mr.Tさん 返信ありがとうございます。
>
> 今具体的に困っているところはといいますと、
>
> ログイン画面 → G02000(通常ログイン後の画面・表示しない) → G17015(飛びたい画面)
>
> というような順番で、読み込みを行いたいのですが、
>
> なぜか
> ログイン画面 → G17015 → G02000(通常ログイン後の画面・表示しない) → G17015
>
> そして10回に1度くらいの頻度で、
> ログイン画面 → G02000 → G17015 → G17015
> の順の読み込みになります。。

#いや、だから、作った人に聞いて欲しいです。

とはいうても、解決にはならないので、
そのログイン画面→G02000→G17015の遷移は、どういうソースで実装されている
んでしょうか?


引用返信 編集キー/
■15193 / inTopicNo.5)  Re[4]: URLのReturnUrl
□投稿者/ HR (3回)-(2008/03/06(Thu) 14:19:17)
返信ありがとうございます。

まず、ログイン画面でログインボタン押下時の処理です

    Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click

        Dim sURL As String
        Dim lPos As Long

        '' エラー表示はいったん非表示
        Me.lblErr.Visible = False

        '' 入力エラーがなければ実行
        If Page.IsValid Then
            'ログイン初回情報設定
            Session("LOGIN_INIT") = "INIT"

            '' セッションIDを取得
            Session("LOGIN") = "LOGIN"
            Dim sRdURL As String
            sRdURL = FormsAuthentication.GetRedirectUrl(txtStaffNo.Text, False)

            'Session("RETURN") = Request.QueryString("ReturnUrl")
            sURL = Page.Request.Url.Query
            lPos = InStr(sURL, "?ReturnUrl=")
            If lPos > 0 Then
                Session("RETURN") = Replace(Mid(sURL, lPos + Len("?ReturnURL=")), "%2fkeihi%2f", "")
            End If

            '' トップページを表示
            FormsAuthentication.RedirectFromLoginPage(txtStaffNo.Text, False)
        End If

    End Sub

ログインボタン押下時に、G02000から処理が始まったり、G17015から始まったりするのはどのようなことが考えれるのでしょうか?

宜しくお願いします。

引用返信 編集キー/
■15195 / inTopicNo.6)  Re[4]: URLのReturnUrl
□投稿者/ やじゅ (217回)-(2008/03/06(Thu) 14:38:04)
> ■No15179 (HR さん) に返信
>そして10回に1度くらいの頻度で、
>ログイン画面 → G02000 → G17015 → G17015
>の順の読み込みになります。。

同じような現象でしょうか?

フォーム認証でリダイレクト先が変わる
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=23561&forum=7
引用返信 編集キー/
■15197 / inTopicNo.7)  Re[5]: URLのReturnUrl
□投稿者/ Mr.T (200回)-(2008/03/06(Thu) 15:41:45)
Mr.Tです、こんにちは。

Form認証を使っているのですね。
#これは先に提示してほしい情報ですね

なぜなら、このForm認証であることがわかれば、以下の情報がきちんと
載っているからです。

http://msdn2.microsoft.com/ja-jp/library/ka5ffkce(VS.80).aspx
--引用
RedirectToLoginPage メソッドは、アプリケーションにログインするユーザーに対して、構成された LoginUrl にブラウザをリダイレクトします。認証済みユーザーは、RedirectFromLoginPage メソッドによって、初めに要求された、保護されている URL または DefaultUrl にリダイレクトされます。
--ここまで

>ログインボタン押下時に、G02000から処理が始まったり、G17015から始まったりするのはどのようなことが考えれるのでしょうか?

Web.configの記述はどうなっているかを確認してください。
おそらく現象としては、認証チケットの期限が切れたために、指定されたLoginUrl(ここではG02000?)
に飛ばされてしまっているのではないかと思います。


引用返信 編集キー/
■15198 / inTopicNo.8)  Re[5]: URLのReturnUrl
□投稿者/ はつね (493回)-(2008/03/06(Thu) 15:53:01)
はつね さんの Web サイト
No15193 (HR さん) に返信
> ログインボタン押下時に、G02000から処理が始まったり、G17015から始まったりするのはどのようなことが考えれるのでしょうか?

ログインに成功したときには
FormsAuthentication.RedirectFromLoginPage(txtStaffNo.Text, False)
によりReturnURLに指定されているG17015.aspxに自動的に飛びます。

G02000から始まるのは、G02000を指定しているところがないか全ソース(web.configも含む)を精査して下さい。もしくは、ReturnURLがG02000.aspxだったりしていなかを確認してください。

引用返信 編集キー/
■15217 / inTopicNo.9)  Re[5]: URLのReturnUrl
□投稿者/ HR (4回)-(2008/03/07(Fri) 10:37:42)
返信が遅くなり申し訳ありません。

>>やじゅさん。Mr.Tさん。はつねさん。返信ありがとうございます。
このページも前に見たのですが、何か関係しているようなのは分かったのですが。。

フォーム認証という重要なところが抜けてしまっていて申し訳ありませんでした。

>--引用
>RedirectToLoginPage メソッドは、アプリケーションにログインするユーザーに対して、構成された LoginUrl にブラウザをリダイレクトしま>>>す。認証済みユーザーは、RedirectFromLoginPage メソッドによって、初めに要求された、保護されている URL または DefaultUrl にリダイレク>トされます。
>--ここまで

RedirectFromLoginPage ではなく RedirectToLoginPage を使うということなのでしょうか?

' トップページを表示
FormsAuthentication.RedirectFromLoginPage(txtStaffNo.Text, False)
このコードでReturnUrlがG17015になっている場合は、通常の処理の流れでは、ログイン処理の次の処理はG17015から始まるのが普通なのでしょうか?

宜しくお願いいたします。




引用返信 編集キー/
■15219 / inTopicNo.10)  Re[6]: URLのReturnUrl
□投稿者/ はつね (496回)-(2008/03/07(Fri) 11:03:27)
はつね さんの Web サイト
No15217 (HR さん) に返信
> FormsAuthentication.RedirectFromLoginPage(txtStaffNo.Text, False)
> このコードでReturnUrlがG17015になっている場合は、通常の処理の流れでは、ログイン処理の次の処理はG17015から始まるのが普通なのでしょうか?

普通というか、それがRedirectFromLoginPageメソッドの機能です。


> RedirectFromLoginPage ではなく RedirectToLoginPage を使うということなのでしょうか?

RedirectToLoginPageは、ログインページにリダイレクトする、つまりログインページを表示するためのものです。

実際のところ何が分からなくて何を知りたくて何をしたいのでしょうか。
最初の質問にあるReturnUrlについては明確な回答が寄せられていると思うのです。

回答者はエスパーじゃないから、例えば、「フォーム認証を使ってログイン画面からログインしたら常にG17015.aspxを表示したいのにReturnUrlに指定されているページが表示されてしまいます。どのようなコードを書いたらReturnUrlを無視して常にG17015.aspxを表示したらよいでしょうか。」とか具体的にやりたい事を書いてもらわないと得たい情報はなかなか得られないと思いますよ。




引用返信 編集キー/
■15220 / inTopicNo.11)  Re[7]: URLのReturnUrl
□投稿者/ HR (5回)-(2008/03/07(Fri) 11:16:32)
返信ありがとうございます。

>RedirectToLoginPageは、ログインページにリダイレクトする、つまりログインページを表示するためのものです。
理解いたしました。さらに詳しく調べてみます。

>実際のところ何が分からなくて何を知りたくて何をしたいのでしょうか。
>最初の質問にあるReturnUrlについては明確な回答が寄せられていると思うのです。
具体的に何がしたいかと言いますと、
フォーム認証を使ってログイン画面からログインし、通常は最初にG02000(メインページ・ここでログインIDなどの読み込みを行う)に遷移するのですが、今はG02000では読み込みの処理だけを行い、画面表示せずに、指定したページ(G17015.aspx)にリダイレクトしたいのですが、
ログイン → G02000 → G17015 の順で読み込みしたいのですが、この場合はどのようなコード?ReturnUrlを指定すればよいのでしょうか?

宜しくお願いします。
引用返信 編集キー/
■15222 / inTopicNo.12)  Re[8]: URLのReturnUrl
□投稿者/ Mr.T (201回)-(2008/03/07(Fri) 12:15:22)
Mr.Tです、こんにちは。

> ログイン → G02000 → G17015 の順で読み込みしたいのですが、この場合はどのようなコード?ReturnUrlを指定すればよいのでしょうか?
>
> 宜しくお願いします。

G02000にリダイレクトして、そこからG17015にリダイレクトすればよいのでは?
少なくとも、提示されたソースからでは、G02000.aspxへの飛び先がありませんし。
引用返信 編集キー/
■15223 / inTopicNo.13)  Re[8]: URLのReturnUrl
□投稿者/ はつね (497回)-(2008/03/07(Fri) 12:41:43)
はつね さんの Web サイト
No15220 (HR さん) に返信
> フォーム認証を使ってログイン画面からログインし、通常は最初にG02000(メインページ・ここでログインIDなどの読み込みを行う)に遷移するのです
> が、今はG02000では読み込みの処理だけを行い、画面表示せずに、指定したページ(G17015.aspx)にリダイレクトしたいのですが、
> ログイン → G02000 → G17015 の順で読み込みしたいのですが、この場合はどのようなコード?ReturnUrlを指定すればよいのでしょうか?

ReturnUrlは自分で指定して使うようなものではなく、あくまでもフォーム認証でログイン画面から本来依頼された画面に戻るためのものです。
よって、ログイン後に常にG02000.aspxに行き、そこから自動的にG17015.aspxを表示したいのであれば、RedirectFromLoginPageではなく

ログイン画面の中で
(1)ログインが成功となったときにFormsAuthentication.SetAuthCookieを行う
(2)Response.RedirectでG02000.aspxに飛ぶ

G02000.aspxの中で
(1)処理を行う
(2)処理の最後でResponse.RedirectでG17015.aspxに飛ぶ

となります。

でも、それよりも「G02000では読み込みの処理」なんでしょ?
読み込みの処理を別クラスとしてG02000.aspxとG17015.aspxの両方で使えるようにして、ログイン画面からはG17015.aspxに飛ぶようにした方がいいじゃないの?

引用返信 編集キー/
■15228 / inTopicNo.14)  Re[9]: URLのReturnUrl
□投稿者/ HR (6回)-(2008/03/07(Fri) 14:48:10)
Mr.Tさん、はつねさん返信ありがとうございます。

>ログイン画面の中で
>(1)ログインが成功となったときにFormsAuthentication.SetAuthCookieを行う
>(2)Response.RedirectでG02000.aspxに飛ぶ

>G02000.aspxの中で
>(1)処理を行う
>(2)処理の最後でResponse.RedirectでG17015.aspxに飛ぶ

このようにコードを修正してみたのですが、

ログイン→G02000→G17015までは流れ通りにきてくれたのですが、
→G02000→G17015と読み込みが終わらず繰り返されてしまいました。。
ログイン時のアドレス
http://localhost/keihi/Login.aspx?AAA=%2fkeihi%2fG17015.aspx?Group=5&No=SJ-08-0029&SubNo=00&BGID=G17000
となっているのですが、これが原因でしょうか?

宜しくお願いします。

引用返信 編集キー/
■15229 / inTopicNo.15)  Re[10]: URLのReturnUrl
□投稿者/ なちゃ (110回)-(2008/03/07(Fri) 15:31:30)
G17015からG02000へのリダイレクトがあってそこの判定が間違ってるんざゃないの?

引用返信 編集キー/
■15233 / inTopicNo.16)  Re[10]: URLのReturnUrl
□投稿者/ はつね (498回)-(2008/03/08(Sat) 07:58:00)
No15228 (HR さん) に返信
> ログイン→G02000→G17015までは流れ通りにきてくれたのですが、
> →G02000→G17015と読み込みが終わらず繰り返されてしまいました。。
> ログイン時のアドレス

Login.aspxのURLパラメタのなかで表題にあるReturnURLについてフォーム認証に絡みASP.NETを使っている場合に自動的に付与されるため関連した開発をおこなっていれば誰でもが適切な回答ができるものです。

しかしながら「?AAA=%2fkeihi%2fG17015.aspx?Group=5&No=SJ-08-0029&SubNo=00&BGID=G17000」については、
AAA
Group
No
SubNO
BGID
の各パラメタが質問者の方のアプリでどのような意味を持つのか、仕様書などが公開されていないため誰にもわかりません。もちろん、それがLogin.aspxやG2000.aspx、G17015.aspxの中でどのような意味を持ち、どのような動作をおこなうべきかも誰にも分かりません。

URLパラメタの仕様やプログラム仕様を公開するのは守秘義務違反になったり、システムの安全性を脅かす原因にもなりかねないので、絶対投稿できませんし、絶対投稿しないで下さい。

そうなると、G2000.aspx.vbやG17015.aspx.vbの中にあるRedirect関連にブレークポイントをはったりステップ実行をして、どのように動いているのかをご自身の目で確認して頂くしかないように思います。

引用返信 編集キー/
■15279 / inTopicNo.17)  Re[11]: URLのReturnUrl
□投稿者/ HR (7回)-(2008/03/10(Mon) 09:51:18)
なちゃさん、はつねさん返信ありがとうございます。

>G17015からG02000へのリダイレクトがあってそこの判定が間違ってるんざゃないの?

よく見てみてもG17015にはリダイレクトのコードはありませんでした。

>URLパラメタの仕様やプログラム仕様を公開するのは守秘義務違反になったり、システムの安全性を脅かす原因にもなりかねないの >で、絶対投稿できませんし、絶対投稿しないで下さい。
>そうなると、G2000.aspx.vbやG17015.aspx.vbの中にあるRedirect関連にブレークポイントをはったりステップ実行をして、どのよう>に動いているのかをご自身の目で確認して頂くしかないように思います。

助言ありがとうございます。
ここにいる皆様のおかげで、一応望み通りの処理の流れになりました。
あとはステップ実行などをして、変数の値の確認などをして本当にできているのか確認したいと思います。
ありがとうございました。
引用返信 編集キー/
■15281 / inTopicNo.18)  Re[12]: URLのReturnUrl
□投稿者/ Mr.T (202回)-(2008/03/10(Mon) 10:35:36)
Mr.Tです、こんにちは。

> 助言ありがとうございます。
> ここにいる皆様のおかげで、一応望み通りの処理の流れになりました。
> あとはステップ実行などをして、変数の値の確認などをして本当にできているのか確認したいと思います。
> ありがとうございました。

ん?

はつねさんの提案のように、認証チケットの扱いと、リダイレクトの処理を変更されたようですが、
それでも正しい処理の流れにはなってくれなかったのですよね?

>ログイン→G02000→G17015までは流れ通りにきてくれたのですが、
と、ここまではよいけど、
>→G02000→G17015と読み込みが終わらず繰り返されてしまいました。。
こうなっていたのだと思ってました。

でもそれは解決でき、
>→G02000→G17015と読み込みが終わらず繰り返されてしまいました。。
これは繰り返されることがなくなったということですか?

だとしたところで、
>よく見てみてもG17015にはリダイレクトのコードはありませんでした。
ということで、リダイレクト処理はされていないのですよね?

望みどおりの処理の流れになったのは、何をどうした結果望みどおりになったのでしょう?

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -