2013-04-09 13 views
2

我遇到了一個非常奇怪的錯誤,我對ASP.NET並不擅長,但我正在幫助開發一個單一的登錄應用程序,無法重定向用戶。我要保持儘可能簡單,這是它如何工作的:第404頁運行SQL語句後重定向

1)他們來自另一個網站,它通過與他們的ID的單點登錄對象在它

2。 )在頁面加載時,我們使用該ID在我們的數據庫中查找並獲取他們的信息,如果他們缺少信息,他們必須填寫它。

3)如果他們錯過任何信息時,它把自己的身份證到活動的會話表,然後將他們重定向到最終網站

麻煩的是,我可以做SQL INSERT語句很好,當頁面加載並且它從單一登錄對象收到數據就好了;但是當我運行SQL插入語句,然後將它們重定向到另一頁時,頁面只是404s。當重定向被放置在那裏時,我們也會得到單點登錄錯誤,只是說它不能完成。我們註冊了SQL語句,但它們沒有重定向。就像說的那樣,它只是404s。

爲什麼會發生這種情況的任何原因?這裏是代碼的一般流程:

protected void Page_Load(object sender, EventArgs e) 
{ 
    SSOObject x = ServiceProvider.RecieveSSO(Request); 
    userID = x.ID; 

    SqlConnection conn = new SqlConnection(connString); 
    conn.Open(); 
    SqlCommand comm = ("INSERT INTO etc..."); 

    comm.Parameters.AddWithValue("@ID", userID); 

    comm.ExecuteNonQuery(); 
    conn.Close(); 
    comm.Dispose(); 

    // It works fine up to here, but if I add this it 404's: 
    Response.Redirect("http://ourwebsite.com/user/etc..."); 
} 

在此先感謝任何人誰給了這個去,它一直困惑我一下。

編輯:遺漏了一條重要的信息。如果我將SSO代碼註釋掉並且硬編碼,那麼整個過程就可以工作!

+0

您您使用的是用戶ID明確地傳遞一個URL重定向方法,在實際代碼變量還是什麼?防爆。你是否使用類似Response.Redirect(「/ user /」&userID); ?你能從瀏覽器發佈URL嗎?防爆。瀏覽器嘗試導航到http://ourwebsite.com/http://ourwebsite.com/user/etc ...? – 2013-04-09 16:31:43

+0

我的猜測是重定向和SSO不能很好地協同工作。我們從SSO對象中獲取ID,然後生成一個隨機字符串並將其用戶ID和隨機字符串插入到表中(用作會話ID),因此當它們被重定向時,我們只是尋找隨機字符串所以我們知道它與哪個ID相關聯。因此,該網址將是http://site.us.com/user/something=DEFAULT&session=「+ randomString; – JMarsh 2013-04-09 16:37:52

+0

根據您的評論,您應該很容易就能夠解決此問題。如果您使用的是硬編碼並且工作正常那麼你使用一個變量,然後它不會有兩件事情我會找到問題 - 答:在變量randomString上設置一個斷點,並確保它有一個值B:確保將它轉換爲字符串if如果沒有看到確切的代碼,很難幫助排除故障(例如,您發佈的代碼工作得很好) – 2013-04-09 17:59:38

回答

0

我只是必須通過假(參數是結束頁面的執行),象這樣:

Response.Redirect("http://website.com", false);