1

我們現在對ASP.Net Membership應用程序存在大量問題。ASP.Net成功登錄成功,然後重定向到登錄頁面

由於不相關的原因,我們使用了一個MembershipProvider實現,該實現使用舊式Web.config指定憑證和一個只允許一切的RoleProvider(RolesProvider可能是這裏的問題!)。這不是我們可以改變的,因爲對於我們遇到的一些其他問題來說,這是一個有點冒險的解決方法,我們只是想讓這個最小案例工作。

MembershipProvider實現工作的很好,當我在我的機器上測試時,一切正常。但是,當我將它推送到測試服務器時,我驗證成功(並且可以看到trace log中的cookie),但隨後會直接跳回到登錄頁面,如跟蹤日誌中的這些條目所示:

19 9/7/2010 5:50:03 PM /login.aspx  302 POST View Details 
20 9/7/2010 5:50:03 PM /Default.aspx 302 GET View Details 
21 9/7/2010 5:50:03 PM /login.aspx  200 GET View Details 

已經增加了很多回溯到代碼的,我真的很成功認證:

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e); 

    LoginControl.LoggedIn += new EventHandler(LoginControl_LoggedIn); 
    LoginControl.LoginError += new EventHandler(LoginControl_LoginError); 
} 

void LoginControl_LoggedIn(object sender, EventArgs e) 
{ 
    Trace.Write("LoginControl_LoggedIn", "Logged in successfully"); 
} 

void LoginControl_LoginError(object sender, EventArgs e) 
{ 
    Trace.Write("LoginControl_LoginError", "Failed to authenticate"); 
} 

給我:

LoginControl_LoggedIn Logged in successfully 0.0044027241880433 0.000238 

夏暉ng嘗試跟蹤我重定向到的Default.aspx,甚至沒有觸發PreInit事件。

我不認爲這是這就是問題的RoleProvider,部分原因是因爲它確實是只說是一切:

public override bool IsUserInRole(string username, string roleName) 
{ 
    return true; 
} 

我已經看了SO:62013Forums:1318557the blog post mentioned in SO:62013和無那些有什麼區別。

任何想法,任何人?我完全不知所措。

+0

問題出在您的默認頁面上,請檢查您的代碼以重定向到登錄頁面。 – Aristos 2010-09-07 17:42:19

+0

默認頁面上沒有重定向代碼。這絕對不是,對不起。默認頁面中唯一的代碼是根據是否啓用Membership來切換HtmlGenericControl的顯示。 – 2010-09-08 09:02:51

+0

我從來不會使用asp.net內置的登錄系統。這很糟糕。 – 2010-09-08 10:34:39

回答

1

您是否嘗試過在Visual Studio中啓用.NET Framework源代碼步進?

Tools > Options > Debugging > (uncheck) Enable Just My Code

Tools > Options > Debugging > Enable .NET Framework source stepping

然後,您必須從Microsoft符號服務器導入.NET符號,但它會指導您完成它。您至少可以逐步瀏覽基礎角色和成員資格提供程序,看看他們是否正在執行重定向。

這是不是一個真正的答案(寧願把它作爲一個評論,但沒有足夠的代表呢。)

+0

我們無法在服務器上進行調試。我們所能做的就是寫入跟蹤。 Fwiw,我們已經放棄嘗試解決這個問題,但知道如何解決這個問題會非常有用,因爲我只是不明白爲什麼它不起作用:o( – 2010-09-13 11:24:37

1

試圖通過這裏找到故障排除步驟工作:

Troubleshoot Forms Authentication

希望你在那裏找到你的問題。我目前唯一的其他建議是禁用web.config中的角色提供程序(如果可能的話)並嘗試這種方式。

相關問題