2010-06-03 94 views
0

我們遇到了ASP服務器的問題。.NET Response.Redirect在新服務器上無法正常工作

如果您嘗試訪問受密碼保護的頁面,它會執行安全檢查並重定向您,如果您未登錄,則保留該URL(即Members/MemberLogin.aspx?doc =/PodCast/Default.aspx)

vb腳本將「/PodCast/Default.aspx」放置在一個變量中,並保存它直到登錄過程完成。

一旦用戶鍵入他們的用戶名和密碼,它會假設做一個Response.Redirect(strRedirectURL)並轉到「/PodCast/Default.aspx」,而是進入default.aspx頁面進行登錄成功。

起腳是的,我知道的代碼是100%正確的監守,它正在我們之前的服務器上,但是當我們推開所有的數據到這個服務器,一切正常但片。

任何建議,將是偉大的!

謝謝大家!

回答

0

您是否使用自定義重定向代碼? ASP.NET登錄後用於重定向的默認查詢字符串參數爲ReturnUrl

你舉了個例子:Members/MemberLogin.aspx? doc = /PodCast/Default.aspx。

基於此,我假設一旦登錄,.net框架將檢查Request.QueryString["ReturnUrl"]的值,並發現它爲空,因此該站點將重定向到基本URL。

如果由於某種原因,你正在構建使用doc爲您查詢參數非標準的網址,你可以掛接到您的Login控制的OnLogin事件,如:

標記:

<asp:Login id="Login1" runat="server" OnLoggedIn="Login1_LoggedIn" /> 

代碼:

protected void Login1_LoggedIn(object sender, EventArgs e) 
{ 
    string url = Request.QueryString["doc"]; 
    if(!string.IsNullOrEmpty(url)) 
    { 
     Response.Redirect(url); 
    } 
} 
+0

第一關,我沒有太大的.NET傢伙,所以裸跟我,如果我聽起來無知。 編寫所有這些的人不再在這裏,代碼似乎是在這裏和那裏與不常見的做法有點錯誤。 這就是說,登錄頁面檢測到上一頁時,它會在頁面加載後將其放置在字符串變量中。輸入用戶名和密碼後,它似乎重新加載並釋放變量信息,並默認爲else變量聲明的內容。 這有道理嗎?大聲笑 感謝您的幫助! – Brad 2010-06-04 19:49:43

+0

這是if語句我提到上述 如果len(strRequestedDoc)> 0,則 strRedirectURL = strRequestedDoc \t \t \t \t \t 否則 strRedirectURL = 「/成員」 \t \t \t 結束如果 – Brad 2010-06-04 19:50:55

+0

您可以發佈您的代碼 - 登錄頁面的背後?由於您使用的是自定義功能,因此如果沒有它,將很難提供幫助。我認爲源代碼是關鍵。 – 2010-06-04 19:55:35

0

如果您的回發機制(如按鈕)存在於updatepanel內,您需要設置觸發 ASP:PostBackTrigger控件ID =「XXXX」/

+0

兩年前你接受的答案是什麼?檢查這個[metaSO問題](http://meta.stackexchange.com/questions/7656/how-do-i-write-a-good-answer-to-a-question)和[Jon Skeet:Coding Blog]( http://msmvps.com/blogs/jon_skeet/archive/2009/02/17/answering-technical-questions-helpfully.aspx)如何給出正確的答案。 – Yaroslav 2012-10-11 11:58:24

相關問題