试一下
Response.Redirect("logon.aspx",true);
另外可以检查一下web.config的设置是否正确

解决方案 »

  1.   

    大哥,web.config设置那里可能出错?
      

  2.   

    Response.Redirect("logon.aspx",true); 还是不对
      

  3.   

    程序中是否有禁用session的语句
    骓验证成功生成session,那么不成功的时候当然就没有了
      

  4.   

    Response.Redirect("logon.aspx");把Http....去掉试试
      

  5.   

    验证是成功的,验证成功才会执行重定向的句子。程序中也没禁用过SEESION啊
      

  6.   

    我跟踪结果,在重定向执行之前,SESSION还是有的,重定向到LOGON。ASPX后就没了
      

  7.   

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        
      <system.web>    <!--  动态调试编译
              设置 compilation debug="true" 以启用 ASPX 调试。否则,将此值设置为
              false 将提高此应用程序的运行时性能。
              设置 compilation debug="true" 以将调试符号(.pdb 信息)
              插入到编译页中。因为这将创建执行起来
              较慢的大文件,所以应该只在调试时将此值设置为 true,而在所有其他时候都设置为
              false。有关更多信息,请参考有关
              调试 ASP.NET 文件的文档。
        -->
        <compilation 
             defaultLanguage="c#"
             debug="true"
        />    <!--  自定义错误信息
              设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。 
              为每个要处理的错误添加 <error> 标记。          "On" 始终显示自定义(友好的)信息。
              "Off" 始终显示详细的 ASP.NET 错误信息。
              "RemoteOnly" 只对不在本地 Web 服务器上运行的
               用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便 
               不向远程客户端显示应用程序的详细信息。
        -->
        <customErrors 
        mode="RemoteOnly" 
        />     <!--  身份验证 
              此节设置应用程序的身份验证策略。可能的模式是 "Windows"、 
              "Forms"、 "Passport" 和 "None"          "None" 不执行身份验证。 
              "Windows" IIS 根据应用程序的设置执行身份验证 
                (基本、简要或集成 Windows)。在 IIS 中必须禁用匿名访问。
              "Forms" 您为用户提供一个输入凭据的自定义窗体(Web 页),然后 
               在您的应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。
              "Passport" 身份验证是通过 Microsoft 的集中身份验证服务执行的,
               它为成员站点提供单独登录和核心配置文件服务。
        -->
        <authentication mode="Windows" />  <!--  授权 
               此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
              应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
              (未经身份验证的)用户。
        -->    <authorization>
            <allow users="*" /> <!-- 允许所有用户 -->
                <!--  <allow     users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                      <deny      users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                -->
        </authorization>    <!--  应用程序级别跟踪记录
              应用程序级别跟踪为应用程序中的每一页启用跟踪日志输出。
              设置 trace enabled="true" 可以启用应用程序跟踪记录。如果 pageOutput="true",则
              在每一页的底部显示跟踪信息。否则,可以通过浏览 Web 应用程序
               根目录中的 "trace.axd" 页来查看
              应用程序跟踪日志。
        -->
        <trace
            enabled="false"
            requestLimit="10"
            pageOutput="false"
            traceMode="SortByTime"
    localOnly="true"
        />    <!--  会话状态设置
              默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
              如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
             若要禁用 Cookie,请设置 sessionState cookieless="true"。
        -->
        <sessionState 
                mode="InProc"
                stateConnectionString="tcpip=127.0.0.1:42424"
                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                cookieless="false" 
                timeout="20" 
        />    <!--  全球化
              此节设置应用程序的全球化设置。
        -->
        <globalization 
                requestEncoding="utf-8" 
                responseEncoding="utf-8" 
       />
       
     </system.web>
      <appSettings>
      <!--数据库连接串-->
      <add key="ConnectString" value="Provider=msdaora;Data Source=hzkf;User Id=hnwy;Password=hnwy;"/>
      <!--web地址-->
      <add key="APP_SERVER_PATH" value="http://130.130.10.87/hnwy/"/>
      <!--锁定时长-->
      <add key="LockTime" value="20"/>
      <!--锁定时间类型
    yyyy —年
    mm   —月
    dd  —天
    hh   —小时
    mi   —分钟
    ss   —秒
      -->
      <add key="LockTimeType" value="mi"   />
      <add key="MaxErrorTime" value="3"    />
      <add key="UseLocalPwd"  value="11111"/>
     </appSettings>
    </configuration>
      

  8.   

    Session["MEMBER_ID"]=strBdwAreaCode+strServCode;strBdwAreaCode+strServCode是一个字符串
      

  9.   

    试试Response.Redirect("login.aspx") 不要加http...不行的话再加上一句Response.BufferOutput=true;还不行的话试试Server.Transfer("login.aspx") (这个我没用过)
      

  10.   

    我也觉得Response.Redirect("logon.aspx");
      

  11.   

    改成if(Session["MEMBER_ID"].ToString() != null)
      

  12.   

    也改下Response.Redirect("login.aspx");
      

  13.   

    if(Session["MEMBER_ID"]==null)
    {
    Response.Redirect(Aphttp://130.130.10.87/hnwy/logon.aspx",true);
    }
    没有搞错吧!Session["MEMBER_ID"]==null 转过去 当然还是 null 了
      

  14.   

    呵呵!所以要改成if(Session["MEMBER_ID"].ToString() != null)啊
      

  15.   

    写错了
    if(Session["MEMBER_ID"]==null)
    {
    Response.Redirect(Aphttp://130.130.10.87/hnwy/index.aspx",true);
    }
    是在页面logon.aspx判断SESSION是否存在,如果不存在就不能只用这个页面的功能,并重定向到首页INDEX。ASPX。
      

  16.   

    TO: darren_zhu_NZ() Server.Transfer("login.aspx") 是可以的,到LOGON页面SESION也是存在的,但是当我通过超级连接转到其他页面,SESSION又没有了
    (其他页面也有对于SESSION[“MEMBERID“]的判断)
      

  17.   

    不能加Http://那样的话可能系统默认不是一个AppDomain. 我想起来了,我以前也碰过这种情况.
    Session只有在一个AppDomain才能用
      

  18.   

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        
      <system.web>    <!--  动态调试编译
              设置 compilation debug="true" 以启用 ASPX 调试。否则,将此值设置为
              false 将提高此应用程序的运行时性能。
              设置 compilation debug="true" 以将调试符号(.pdb 信息)
              插入到编译页中。因为这将创建执行起来
              较慢的大文件,所以应该只在调试时将此值设置为 true,而在所有其他时候都设置为
              false。有关更多信息,请参考有关
              调试 ASP.NET 文件的文档。
        -->
        <compilation 
             defaultLanguage="c#"
             debug="true"
        />    <!--  自定义错误信息
              设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。 
              为每个要处理的错误添加 <error> 标记。          "On" 始终显示自定义(友好的)信息。
              "Off" 始终显示详细的 ASP.NET 错误信息。
              "RemoteOnly" 只对不在本地 Web 服务器上运行的
               用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便 
               不向远程客户端显示应用程序的详细信息。
        -->
        <customErrors 
        mode="RemoteOnly" 
        />     <!--  身份验证 
              此节设置应用程序的身份验证策略。可能的模式是 "Windows"、 
              "Forms"、 "Passport" 和 "None"          "None" 不执行身份验证。 
              "Windows" IIS 根据应用程序的设置执行身份验证 
                (基本、简要或集成 Windows)。在 IIS 中必须禁用匿名访问。
              "Forms" 您为用户提供一个输入凭据的自定义窗体(Web 页),然后 
               在您的应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。
              "Passport" 身份验证是通过 Microsoft 的集中身份验证服务执行的,
               它为成员站点提供单独登录和核心配置文件服务。
        -->
        <authentication mode="Windows" />  <!--  授权 
               此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
              应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
              (未经身份验证的)用户。
        -->    <authorization>
            <allow users="*" /> <!-- 允许所有用户 -->
                <!--  <allow     users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                      <deny      users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                -->
        </authorization>    <!--  应用程序级别跟踪记录
              应用程序级别跟踪为应用程序中的每一页启用跟踪日志输出。
              设置 trace enabled="true" 可以启用应用程序跟踪记录。如果 pageOutput="true",则
              在每一页的底部显示跟踪信息。否则,可以通过浏览 Web 应用程序
               根目录中的 "trace.axd" 页来查看
              应用程序跟踪日志。
        -->
        <trace
            enabled="false"
            requestLimit="10"
            pageOutput="false"
            traceMode="SortByTime"
    localOnly="true"
        />    <!--  会话状态设置
              默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
              如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
             若要禁用 Cookie,请设置 sessionState cookieless="true"。
        -->
        <sessionState 
                mode="InProc"
                stateConnectionString="tcpip=127.0.0.1:42424"
                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                cookieless="false" 
                timeout="20" 
        />    <!--  全球化
              此节设置应用程序的全球化设置。
        -->
        <globalization 
                requestEncoding="utf-8" 
                responseEncoding="utf-8" 
       />
       
     </system.web>
      <appSettings>
      <!--数据库连接串-->
      <add key="ConnectString" value="Provider=msdaora;Data Source=hzkf;User Id=hnwy;Password=hnwy;"/>
      <!--web地址-->
      <add key="APP_SERVER_PATH" value="http://130.130.10.87/hnwy/"/>
      <!--锁定时长-->
      <add key="LockTime" value="20"/>
      <!--锁定时间类型
    yyyy —年
    mm   —月
    dd  —天
    hh   —小时
    mi   —分钟
    ss   —秒
      -->
      <add key="LockTimeType" value="mi"   />
      <add key="MaxErrorTime" value="3"    />
      <add key="UseLocalPwd"  value="11111"/>
     </appSettings>
    </configuration>
      
      

  19.   

    你把所有的http://xxx.xxx.xx.xx都去掉, 只Redirect到相对路径的文件 试试
      

  20.   

    我找到了问题,却想不出原因,问题在于我的Page_Load private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    //登陆校验玛
    string VNum=(string)Session["VNum"];
    Session.Abandon();
    ViewState["VNum"]=VNum;
    }
    就是Session.Abandon();的恶果。不过我也奇怪,
     Page_Load是最先执行的事件,也就是说SESSION["MEMBER_ID"]
    是在执行Session.Abandon()之后产生的SESSION,也有影响么????
      

  21.   

    Page_Load是最先执行的事件,也就是说SESSION["MEMBER_ID"]
    是在执行Session.Abandon()之后产生的SESSION,也有影响么????
    =======================SESSION是Context的一个Property, 你原来Context在Redirect到另一个page的时候并没有消失, 所以新Page里的Session还是原来那个, 在Page_Load的时候Abandon, Session没了,所以当然Session["member_id"]也没了