我們現在對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:62013,Forums:1318557和the blog post mentioned in SO:62013和無那些有什麼區別。
任何想法,任何人?我完全不知所措。
問題出在您的默認頁面上,請檢查您的代碼以重定向到登錄頁面。 – Aristos 2010-09-07 17:42:19
默認頁面上沒有重定向代碼。這絕對不是,對不起。默認頁面中唯一的代碼是根據是否啓用Membership來切換HtmlGenericControl的顯示。 – 2010-09-08 09:02:51
我從來不會使用asp.net內置的登錄系統。這很糟糕。 – 2010-09-08 10:34:39