ASP.NET登录控件未重定向

ASP.NET登录控件未重定向,asp.net,login,controls,Asp.net,Login,Controls,我的登录控件不再按预期工作。它从数据库中提取用户名和密码,然后将用户重定向到Home.aspx。不幸的是,重定向没有发生。它确实会将其添加到url的末尾,但什么也没有发生 ReturnUrl=%2fHome.aspx 这是短端ASP代码 <asp:Login ID="Login1" runat="server" OnAuthenticate= "ValidateUser" DestinationPageUrl="~/Home.aspx"> </asp:Login>

我的登录控件不再按预期工作。它从数据库中提取用户名和密码,然后将用户重定向到Home.aspx。不幸的是,重定向没有发生。它确实会将其添加到url的末尾,但什么也没有发生

ReturnUrl=%2fHome.aspx
这是短端ASP代码

<asp:Login ID="Login1" runat="server" OnAuthenticate= "ValidateUser" 
DestinationPageUrl="~/Home.aspx"> </asp:Login>
我一直在开发未登录用户无法访问某些页面的功能,但我不确定这是否是造成问题的原因

在做了一点修改之后,我注意到拒绝用户似乎对它有影响,但不知道有什么其他方法可以重定向非登录尝试


任何帮助都将不胜感激

查看您的代码,在sql命令中,您的查询将密码参数定义为
@password
,而将其添加到cmd参数集合中时,您使用的是
@Wachtwoord
,而不是@password

以下是更新的代码:

 SqlCommand cmd = new SqlCommand("SELECT * FROM Users WHERE Username =@Username and Password=@Password", con);
                cmd.Parameters.AddWithValue("@Username", Login1.UserName);
                cmd.Parameters.AddWithValue("@Password", Login1.Password);
此外,您可以使用以下命令获取返回url,而不是始终重定向到Home.aspx。因此,如果您尝试在不登录的情况下访问某个页面Protected.aspx,用户将被重定向到
Login.aspx?ReturnUrl=Protected.aspx
,登录后用户将被重定向到Protected.aspx页面

  if (dt.Rows.Count > 0)
        {
            Response.Redirect(FormsAuthentication.GetRedirectUrl( Login1.UserName, false));
        }

您似乎正在数据库中以明文形式存储密码。这是一个严重的安全违规行为——密码应该以单向散列和盐析的方式存储。不可能恢复实际密码-您应该只比较哈希形式的密码以确定其有效性。您没有正确处理对象(尤其是SqlConnection)。必须特别注意这些类,以确保它们在您使用完非托管资源后释放它们。如果不这样做,以后可能会导致无法解释的错误和/或性能降低,并且很难诊断。您现在需要学习如何处理IDisposable。完全同意,但这是一个我们正在学习asp.net的小项目。遗憾的是,安全问题还没有得到解决。因此,为了简化项目,它只存储在纯文本中
  if (dt.Rows.Count > 0)
        {
            Response.Redirect(FormsAuthentication.GetRedirectUrl( Login1.UserName, false));
        }