我用asp.net1.1写的登陆代码:
string name=DBUser.checkuserlogin(this.txtUsername.Text.Trim(),this.txtPassword.Text.Trim());
if(name!="")
{
    string ip=Request.UserHostAddress;
    DBUser.userloginWritelog(this.txtUsername.Text.Trim(),ip);
    Session["userphone"]=this.txtUsername.Text.Trim();
    Response.Redirect("user/gouwuche.aspx?mode=no");
}
在登陆成功后,我发现Session竟然为null,没有被赋值,请问这是什么原因啊????
大家都来帮忙吧!!!
解决给分!!!

解决方案 »

  1.   

    web.config
    <sessionState mode='InProc' stateConnectionString='tcpip=127.0.0.1:42424' sqlConnectionString='data source=127.0.0.1;Trusted_Connection=yes' cookieless='true' timeout='60'/> 加上试试?
      

  2.   

    this.txtUsername.Text.Trim(); 有值吗?这段代码好像没啥问题
      

  3.   

    this.txtUsername.Text.Trim(); 确定有值3楼的朋友,我按你的方法改了,还是不行啊!!!!
      

  4.   

    debug进去看看,是否Session["userphone"]被赋值了,
    或者在赋值后加一条代码把Session["userphone"]的值写到log里面看看。如果确认被赋值了,对同一个会话来说session是不会无故消失的
      

  5.   

    if(name!="") {进去了吗} 改成if(!"".equals(name))试试
      

  6.   

    Session["userphone"]确实被赋值了.
    只是通过外网访问网站,才会出现这样的错误,用内网IP地址访问都是正确的,不知道是为什么??
      

  7.   

    上网搜一下获取IP的方法,要分两种情况的,区分是否使用代理服务器什么的,估计是这个原因或者单步调试一下获取的IP是不是为null
      

  8.   

    调试看if(name!="") 有没进去
      

  9.   

    最常见的错误:Session名写错。比如付值时是Session["userphone"],而取值时是Session["usephone"],