2012-05-04 8 views
0

私のサイトはWindows Liveを使用してユーザーを認証します。これの問題は、サイトからログインしてから自分のサインインアクションに戻って自分のサイトに登録/サインすることです。次に、デフォルトでは、SignInアクションがユーザーのプロファイルページにリダイレクトされます。ASP.net MVC3最後のページを保存します。ユーザーがサイトに戻ったときに表示するために表示します。

しかし私が代わりにしたいのは、SignInアクションが、最後に見たページを返すことです。これは単純なはずです。

if (Session["LastPage"] != null) 
    return (ActionResult)Session["LastPage"]; 
else 
    return RedirectToAction("MyPage", "User"); 

:私には、しようとした私のサインインアクションの終わりに続いて

Session["LastPage"] = RedirectToAction("Index", "Home"); 

私が最初に考えたのは、ユーザーの現在の場所を節約するために私の重要なアクションに以下を追加しましたこれは実際には機能しませんが、ユーザーがサイトを離れてナビゲートするたびにセッションが再開されるようです。

私はこの問題に適切にアプローチしていますか?もしそうなら、どのようにしてセッションが拭き取られるのを防ぐのですか?私がこれを完全に間違った方法で行っている場合、誰かが正しい方向に私を向けることができますか?

答えて

0

WindowsLiveLoginオブジェクトのReturnUrlプロパティを設定する必要があります(使用していると仮定します)。二つの理由のために間違った

http://msdn.microsoft.com/en-us/library/cc287661.aspx

+0

:(1)WLからの応答が私のサインインの作用によって処理する必要があるので、私はいつも最初に、(2)あなたは、動的には、Windows LiveにリダイレクトURLを割り当てることができないことを訪問しなければなりません、リダイレクトURLは固定されており、サイトのアプリケーション設定で指定したものと一致している必要があります。 – Danny

関連する問題