Asp:登录控制在第二次登录尝试时不能正确重定向

问题描述:

正如在标题中所说的,我使用的登录控件的重定向方式与我第一次登录时的方式不同。问题是我第一次登录重定向是正确的(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

我傻的时候没有注意到页面上的Loginstatus财产。 添加了LogoutAction和后,解决了我的问题。

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