2011-01-26 6 views
3

私が達成しようとしている一連のアクションは以下のとおりです。ログイン後にユーザーを元のアクションに戻す

コンテキスト:ユーザーは自分のアカウントに商品を追加できます。

  1. ユーザーが特定の製品を追加しようとしています。 (現時点ではログインしていません)
  2. ユーザーのアカウントに製品を追加するには、コードを後でログインページにリダイレクトする必要があります。ログイン後
  3. 、私はステップ1

おかげでアクションを完了するために戻っロジックにシステムを取るんか。

答えて

2

ログインページにリダイレクトするときは、元のURLをクエリ文字列に追加します。
ログインに成功したら、クエリ文字列からURLにaを送信します。

+0

私はFormsAuthentication.RedirectFromLoginPage()によって元のページにユーザーを戻すことができました。しかし、もう一度[追加]ボタンをクリックせずにリダイレクトすると、ユーザーのアカウントに商品を追加したいと考えています。どうすればそれを達成できますか? – weilin8

+0

@ weilin8:クエリーストリングにもそれを渡し、ログイン後に確認してください。 – SLaks

+0

http://someurl.com/page.aspx?product=1&add=trueのようなものをお勧めしますか?次に、クエリ文字列に「追加」があるかどうかを確認します。 – weilin8

2

あなたがでない、または使用するかわからない場合は、をFormsAuthenticationを使用していると仮定すると、ここでそれをチェックアウト:http://msdn.microsoft.com/en-us/library/xdt4thhy.aspx

OKをので、あなたのユーザーが保護されたページにアクセスしようとすると(つまり、彼らは、ASP.NETのフォーム認証は、最高のWebの設定で設定されたログインページ、それらを送信します、)それをログに記録する必要があります:

<authentication mode="Forms"> 
    <forms loginUrl="~/Public/Login.aspx" defaultUrl="~/Public/Default.aspx"/> 
</authentication> 

またそれににreturnurlクエリ文字列パラメータを添付します、ログインページにはどこから来たのかがわかります: http://www.example.com/Public/Login.aspx?にreturnurl =%2fprivate%2forderproduct.aspx

次に、ログインページに、彼らが正常に認証されていると仮定して、あなたは認証Cookieを設定し、そこから戻ってそれらをリダイレクト彼らが来た:の

FormsAuthentication.SetAuthCookie(someUserIdentifier,isRememberMeSet); 
FormsAuthentication.RedirectFromLoginPage(someUserIdentifier, isRememberMeSet); 

をもちろん、FormsAuthenticationを使用したくない場合でも、戻りURLという概念を使用できます。フォーム認証は、あなたに多くのことを無料で提供します。

+0

FormsAuthentication.RedirectFromLoginPage()によって元のページに戻ってユーザーを送信できます。しかし、どのように私はそれを再度クリックすることなく、ユーザーのアカウントに製品を追加する元のアクションに戻すことができます。 – weilin8

関連する問題