2011-01-26 98 views
0

是否有可能從服務器清除ReturnUrl?我有一個登錄頁面,用戶註銷,我想引導他們到一個特定的頁面,但是當設置了ReturnURL時,它會覆蓋我的重定向頁面。ReturnURL清除查詢字符串

更新:

理想情況下,我只會重定向誰剛剛退出與別人誰書籤,否則我將在特殊情況下,無論將用戶重定向。

因此,這些都是個案:

  1. 鏈接或書籤 - >應重定向到指定頁面在大多數情況下
  2. 具有RETURNURL註銷 - >不應該重定向頁面
  3. 特殊情況 - >應該總是重定向到我的特殊情況,即當用戶需要看到重要的東西時

有沒有辦法從註銷/登錄狀態控制中刪除returnurl?

回答

1

你將不得不稍微調整登錄邏輯。我從http://digitalcolony.com/2007/05/override-returnurl-in-asp-net-security/偷了我的答案。

覆蓋登錄邏輯並做:

if (FormsAuthentication.Authenticate(txtName.Text, txtPassword.Text)) 
{ 
    FormsAuthentication.SetAuthCookie(txtName.Text, true); 
    Response.Redirect("MySecuredStartPage.aspx", true); 
} 
+0

我想那就是ASP.NET 1.0我有接入點來做到這一點。然而,這是非常棘手的,因爲如果用戶書籤一個頁面,它應該返回到適當的頁面。但是,如果用戶註銷,則應該重定向或在特殊情況下重定向。嗯 – 2011-01-26 19:46:55

0

這是我試探性的解決方案:

  1. 我可以改變LoginStatus控件重定向到登錄。
  2. 對於正常情況下,我可以讓頁面重定向,即書籤等
  3. 在特殊情況下,我可以的Response.Redirect
0

這裏是幫了我:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     if (!string.IsNullOrEmpty(Request.QueryString["ReturnUrl"])) //check if ReturnUrl is not empty 
     Response.Redirect("index.aspx"); //redirecting to the page I need 
    } 
}