我們有一個會員區的asp.net網站。所有者希望以新的面貌更新網站的公共部分,所以我創建了一個新的登錄頁面,但外觀相同,代碼相同。將頁面放在與原始login.aspx相同的目錄中,但將其稱爲new_login.aspx。測試了新頁面,它可以從我的開發計算機上運行,但是從其他計算機進行測試時,會將用戶重定向到不存在的頁面。asp.net登錄重定向到錯誤頁面
兩頁上的代碼如下所示。
Protected Sub LoginButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim sUser As String = Me.New_Login.UserName
If Roles.IsUserInRole(sUser, "Administrator") Then
Response.Redirect("~/Manager/AMSEmployees.aspx")
ElseIf Roles.IsUserInRole(sUser, "Manager") Then
Response.Redirect("~/Manager/AMSEmployees.aspx")
ElseIf Roles.IsUserInRole(sUser, "Employee") Then
Response.Redirect("~/AMSEmployee/AMSContacts.aspx")
ElseIf Roles.IsUserInRole(sUser, "Contact") Then
Response.Redirect("~/Customer/OrderEntry.aspx")
End If
End Sub
在原始頁面上,它正確地將一個聯繫人重定向到http://www.xxxxx.com/Customer/OrderEntry.aspx。在新頁面上重定向到http://www.xxxxx/login.aspx?ReturnUrl=%2fCustomer%2fOrderEntry.aspx。我用xxxxx替換了客戶的域名。
我不明白爲什麼這兩個頁面的行爲有所不同。該網站的根級沒有登錄頁面。任何幫助,將不勝感激。
一個新問題。我在web.coonfig身份驗證節點中明確添加了登錄頁面。這有幫助,但沒有完全解決問題。現在,當我們進入登錄頁面並輸入一組有效的憑據時,我得到一個未找到頁面的消息。如果我再次使用相同的憑據登錄,則登錄成功並繼續工作,直到瀏覽器關閉,即使我註銷並重新登錄。我可以在幾臺不同計算機的瀏覽器上和不同瀏覽器中複製此行爲。我無法在我的開發服務器上覆制它。
也許你實際上並沒有登錄該用戶?因此,當他們被重定向到'/ Customer/OrderEntry.aspx'時,該頁面將用戶視爲未通過身份驗證,並且正確地將其重定向到舊的登錄頁面,因爲你沒有改變配置以反映新的登錄頁面嗎?你能確保驗證cookie被設置嗎? – MikeSmithDev
你在'web.config'中檢查了'form'標籤'loginUrl'的值嗎? –
我認爲rs命中了它,我沒有明確定義登錄頁面,所以顯然是這個名字登錄工作。添加了此標記,然後將我的重定向代碼放入回發中的加載事件中。客戶離開現場後將在今晚試穿現場服務器。感謝指針。 – DougM