2011-01-26 27 views
3

我嘗試完成的操作順序如下。登錄後將用戶重定向回原始操作

上下文:用戶可以將產品添加到自己的帳戶。

  1. 用戶嘗試添加特定產品。 (他/她目前沒有登錄。)
  2. 在後面的代碼中,我需要將用戶重定向到登錄頁面,然後才能將產品添加到用戶帳戶。
  3. 登錄後,我怎麼把系統恢復到邏輯,完成了行動步驟1

感謝。

回答

2

當您重定向到登錄頁面時,在查詢字符串中添加原始URL。
成功登錄後,從查詢字符串發送一個URL到URL。

+0

我能夠通過FormsAuthentication.RedirectFromLoginPage()將用戶發送回原始頁面。但是我想在沒有再次點擊添加按鈕的情況下將產品重新引導回用戶賬戶。我怎麼能做到這一點? – weilin8 2011-01-26 01:58:07

+0

@ weilin8:將查詢字符串也傳給它,然後在登錄後檢查它。 – SLaks 2011-01-26 02:03:50

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的概念。表單身份驗證爲您免費提供了很多功能。