1

私のiisフォルダー構造は次のようなものです

Default Web Site---->online and Accessing with www.sitename.com/online

Default Web Site---->trade and Accessing with www.sitename.com/trade

Default Web Site---->private and Accessing with www.sitename.com/private

ここで、ログイン ページは "Default Web Site---->trade/Login.aspx" 内にあります。ユーザーが www.sitename.com/online または www.sitename.com/private または www.sitename.com/trade と入力すると、 /she は URL www.sitename.com/trade/Login.aspx にリダイレクトされます。

したがって、ユーザーが「www.sitename.com/online」と入力したときに、「www.sitename.com/trade/Login.aspx」ではなく、www.sitename.com/online と同じ URL のままにする必要があります。ユーザーが入力した URL を維持するにはどうすればよいですか。

ありがとう、ジョビー

4

3 に答える 3

2

これを行う最善の方法は、ログイン ページへのリダイレクトで元の URL を含むパラメータを渡し、ログインで元の URL にリダイレクトすることです。

Location: http://example.com/login?ref=http%3A%2F%2Fexample.com%2Ffoo

次に、ログイン後、「ref」パラメーターを読み取り、場所をリダイレクトします。

于 2012-09-13T06:33:16.950 に答える
1

組み込みのメンバーシップ プロバイダーを使用している場合は[Authorize]、ユーザーを元のページにリダイレクトする機能を持つ属性を使用できます。ユーザーが認証された後、システムはユーザーを要求されたページに自動的にリダイレクトします。

または、次の解決策を試すことができます。

このようなもの:

www.sitename.com/trade/Login.aspx?ReturnUrl=http%3A%2F%2Fsitemap.com%2Fonline

ユーザーが認証された後、要求されたページにユーザーをリダイレクトできます。

Response.Redirect(Request.QueryString["ReturnUrl"]);
于 2012-09-13T06:51:46.100 に答える
0

MVC を使用するか、少なくともその一部を ASPX ページでルーティングしてビューをレンダリングすることを検討してください。このようにして、物理ファイル名とは無関係の任意の URL を設定できます。

ユーザーが URL を入力することはめったにありません...そして、Url が何らかの意味を成す (または完全にナンセンスである) 限り、誰も気にかけているとは思えません。そのため、ログイン ページを /login のような場所にレンダリングして、元のページにリダイレクトしても問題ないと思います。ログインがサイトを離れない場合は、元の URL をクエリ文字列 (@chovy が示唆するように) またはページの非表示の要素に保存できます。ログインがサイトを離れた場合 (OAuth 認証など)、セッション状態または Cookie が戻り URL を保存する場所になる場合があります。

于 2012-09-13T06:39:43.970 に答える