简单登录随机失败

时间:2014-01-24 08:20:22

标签: c# asp.net

我有一个非常简单的asp网站登录系统:

在Default.aspx页面上:

protected void LoginClicked(object sender, EventArgs e)
{
        string userName = ConfigurationManager.AppSettings["UserName"].ToString();
        string password = ConfigurationManager.AppSettings["Password"].ToString();
        string sanitizeUsername =uname.Text;
        string sanitizePassword = upass.Text;
        //System.Diagnostics.Debug.WriteLine(sanitizeUsername +"   "+ sanitizePassword);

        if (sanitizePassword == password && sanitizeUsername == userName)
        {
           // System.Diagnostics.Debug.WriteLine("Session is true......redirecting");
            Session["IsLogin"] = true;
            Response.Redirect("Page1.aspx");
        }
        else
        {
            Response.Write("Invalid Login");
        }
}

在其他每个页面上:

 protected void Page_Load(object sender, EventArgs e)
{
  if (Session["IsLogin"] == null)
    {
        Response.Redirect("Default.aspx");
    }

在web.config文件中:

<appSettings>
  <add key="UserName" value="aaa"/>
  <add key="Password" value="bbb"/>
</appSettings>

它有10%的时间有效,我不明白为什么。当它无法正常工作时,输入密码和用户名字段的文本会在按钮单击后消失,这就是全部。我知道出于安全原因,这可以通过许多其他方式完成,但我想知道为什么这种情况在100%的时间都不起作用?

1 个答案:

答案 0 :(得分:1)

如果有人对解决问题感兴趣:

我注意到登录只有在显示完整网址(包括页面)时才有效

http://mysite/Default.aspx

如果网址没有显示网页名称 ../ Default.aspx ,则上述登录不起作用。 解决方案是更改默认页面中的以下行:

 <form id="form1" runat="server"">

<form id="form1" runat="server" action="Default.aspx">

感谢外部资源,Kunal,提示。