2012-06-06 27 views
1

正如在標題中所說的,我使用的登錄控件的重定向方式與我第一次登錄時的方式不同。問題是我第一次登錄重定向是正確的(default.aspx),並在我登錄後,然後再次登錄它將我帶到我登出的頁面。我沒有想法做什麼!感謝所有幫助!感謝名單!Asp:登錄控制在第二次登錄嘗試時不能正確重定向

<asp:Login ID="Login1" runat="server" DestinationPageUrl="~/Default.aspx" DisplayRememberMe="False" 
TitleText="" UserNameLabelText="Username:" OnAuthenticate="Login1Authenticate" 
FailureText="Incorrect username or password" Width="100%" VisibleWhenLoggedIn="False" 
FailureAction="Refresh" > 
</asp:Login> 

protected void Login1Authenticate(object sender, AuthenticateEventArgs e) 
{ 
    var filecontent = Server.MapPath(@"~/App_Data/UsersFile.txt"); 
    var lines = File.ReadAllLines(filecontent); 

    foreach (var line in lines) 
    { 
     if (line.Contains(@"username")) 
     { 
      var str = line; int index = str.IndexOf("=", StringComparison.Ordinal); 
      var newstr = str.Substring(index + 1); 
      Username = newstr.Trim(); 
     } 
     if (line.Contains(@"password")) 
     { 
      var str = line; int index = str.IndexOf("=", StringComparison.Ordinal); 
      var newstr = str.Substring(index + 1); 
      Password = newstr.Trim(); 
     } 

     if ((!Login1.UserName.Trim().Equals(Username)) || (!Login1.Password.Trim().Equals(Password))) continue; 
     e.Authenticated = true; 
     LogUserActions(Username, "Logged in successfully at: "); 
     break; 
    } 

    if (e.Authenticated) return; 
    LogUserActions(Username, "Failed to login in at: "); 
    LoginStatus1_ModalPopupExtender.Show(); 
} 
+0

當你點擊註銷後,你的網址是什麼樣的?以及註銷的代碼是什麼? – peroija

+0

這就是第二次註銷時的URL: 'http:// localhost:59630/WebSite1/login.aspx?ReturnUrl =%2fWebSite1%2fSummary.aspx%3ftext%3dHotel%2bBangkok&text = Hotel + Bangkok' 而且我沒有Logout的任何事件處理程序,因爲「LoginStatus1」是一個控制我的網站上的登錄處理的Ajax popupControl。 – Haris

回答

1

我傻的時候沒有注意到頁面上的Loginstatus財產。 添加了LogoutAction和後,解決了我的問題。

<asp:LoginStatus ID="LoginStatus1" runat="server" 
LogoutAction="RedirectToLoginPage" LogoutPageUrl="~/Login.aspx" /> 
相關問題