最近写了个登陆的用户控件.ascx文件利用Session保存登陆信息和判断是否显示登陆框
.ascx.cs中
 Response.Write("<script language=javascript>alert('你已经成功登陆!');</script>");
                    Session["memberlogin"] = "OK";         //保存登陆信息到Session变量
                    Session["membername"] = pu;            
                    Session["memberpass"] = pw;             
                    Response.Redirect("index.aspx");           
                }
                else
                {
                    Response.Write("<script language=javascript>alert('非法登录!');</script>");
                }并且在.ascx文件中
<%
    
    if (Session["memberlogin"]=="")
    {
        
      %>   
    <td>
        用户名:<asp:TextBox runat="server" ID="TextBox_usertext" ></asp:TextBox>
        密    码:<asp:TextBox runat="server" ID="TextBox_userpass" TextMode="Password"></asp:TextBox>
        <asp:ImageButton ID="ImageButton1" runat="server" Height="20px" 
            ImageUrl="~/image/login.jpg" Width="60px" OnClick="ImageButton1_Click" />
        <asp:ImageButton ID="ImageButton2"
            runat="server" Height="20px" ImageUrl="~/image/exit.jpg" Width="60px" OnClick="ImageButton2_Click"/>
            </td>
    <%
    }
    else
    { 
         %>为什么出现错误提示说,当前上下文中缺少Session
麻烦高手帮忙解决下……在线等待

解决方案 »

  1.   

    using System.Web.SessionState; 
    protected void Page_Load(object sender, EventArgs e)
        {
            if (session["userName"] = null)       
              {
            }
         }
      

  2.   

    你这是在.ascx.cs中,但是在.ascx中一样还是无法识别Session
      

  3.   

    怎么说呢,因为你页面每次都会执行
    <%
        
      if (Session["memberlogin"]=="")
      {
        
    %>
    当你在后台的地方没有给Session["membgerlogin"]赋过值的时候,它本身默认的值是一个null,而你直接拿它去跟一个字符串来比较是不行的,你只能先确定好它不是null后再进行比较,试试
     <%
        
      if (Session["memberlogin"] == null)
      {
        
    %>
      

  4.   

    改了也不行呀,问题是在.ascx中提示当前上下文中不存在Session,这个怎么搞呀?急……
      

  5.   

    不会呀  。ascx页面也是可以用Session的啊 你把这个页面先删了 再从新加一次看看