日期:2014-05-18  浏览次数:20493 次

一个弱智的问题。登陆的问题!
登陆截面代码:
public partial class admin_login : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }
  protected void Button1_Click(object sender, EventArgs e)
  {
  if ((this.TextBox1.Text == "admin") && (this.TextBox2.Text == "admin"))
  {
  Response.Redirect("admin.aspx");
  Session["username"] = this.TextBox1.Text;
   
  }
  else
  {
  Response.Write("<script>alert('用户名密码错误!');</script>");
  }
  }
}
admin.aspx页面代码:
  protected void Page_Load(object sender, EventArgs e)
  {
   
  if(Session["username"]==null)
  {
  Response.Redirect("login.aspx");
  }
  }
登陆了:admin,admin
结果居然没有登陆到admin.aspx页面。但是注销admin.aspx的  
 if(Session["username"]==null)
  {
  Response.Redirect("login.aspx");
  }
就能登陆进去了。
为什么呢??刚刚学!

------解决方案--------------------

顺序错误了,你先转移的页面,然后写的Session,后面的Session根们就没有写入
把他们的顺序该一下,如下:
 Session["username"] = this.TextBox1.Text; 
Response.Redirect("admin.aspx"); 

------解决方案--------------------
另外楼上的也有道理。我刚才还没注意看。。位置确实需要交换一下。
Session["username"] = this.TextBox1.Text;
Response.Redirect("admin.aspx");

------解决方案--------------------
//session是否过期,若过期,自动跳往登录界面
if ((object)this.Session["Oper"] == null )
Response.Redirect("./UserLogin.aspx");
}