SESSION丢失问题,崩溃AND急!!!!! 试一下Response.Redirect("logon.aspx",true);另外可以检查一下web.config的设置是否正确 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 大哥,web.config设置那里可能出错? Response.Redirect("logon.aspx",true); 还是不对 程序中是否有禁用session的语句骓验证成功生成session,那么不成功的时候当然就没有了 Response.Redirect("logon.aspx");把Http....去掉试试 验证是成功的,验证成功才会执行重定向的句子。程序中也没禁用过SEESION啊 我跟踪结果,在重定向执行之前,SESSION还是有的,重定向到LOGON。ASPX后就没了 <?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> Session["MEMBER_ID"]=strBdwAreaCode+strServCode;strBdwAreaCode+strServCode是一个字符串 试试Response.Redirect("login.aspx") 不要加http...不行的话再加上一句Response.BufferOutput=true;还不行的话试试Server.Transfer("login.aspx") (这个我没用过) 我也觉得Response.Redirect("logon.aspx"); 改成if(Session["MEMBER_ID"].ToString() != null) 也改下Response.Redirect("login.aspx"); if(Session["MEMBER_ID"]==null){Response.Redirect(Aphttp://130.130.10.87/hnwy/logon.aspx",true);}没有搞错吧!Session["MEMBER_ID"]==null 转过去 当然还是 null 了 呵呵!所以要改成if(Session["MEMBER_ID"].ToString() != null)啊 写错了if(Session["MEMBER_ID"]==null){Response.Redirect(Aphttp://130.130.10.87/hnwy/index.aspx",true);}是在页面logon.aspx判断SESSION是否存在,如果不存在就不能只用这个页面的功能,并重定向到首页INDEX。ASPX。 TO: darren_zhu_NZ() Server.Transfer("login.aspx") 是可以的,到LOGON页面SESION也是存在的,但是当我通过超级连接转到其他页面,SESSION又没有了(其他页面也有对于SESSION[“MEMBERID“]的判断) 不能加Http://那样的话可能系统默认不是一个AppDomain. 我想起来了,我以前也碰过这种情况.Session只有在一个AppDomain才能用 <?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> 你把所有的http://xxx.xxx.xx.xx都去掉, 只Redirect到相对路径的文件 试试 我找到了问题,却想不出原因,问题在于我的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,也有影响么???? Page_Load是最先执行的事件,也就是说SESSION["MEMBER_ID"]是在执行Session.Abandon()之后产生的SESSION,也有影响么????=======================SESSION是Context的一个Property, 你原来Context在Redirect到另一个page的时候并没有消失, 所以新Page里的Session还是原来那个, 在Page_Load的时候Abandon, Session没了,所以当然Session["member_id"]也没了 jQuery 一个小问题 VS2008自带的CrystalReport做报表,报表内容直接显示在pdf中? 如何取得treeview中的多个节点的值 在asp.net中怎么做类似于csdn的发送消息的功能?? 如何取得当前域用户名 关于控件事件流程 学习2.0的几个问题,请各位帮忙看看(不要怀疑星星也提这种问题) 求DataGrid中的数据打印代码 有劳思归看看,MyWebClient.DownloadFile问题 jqury模拟右键刷新代码 Timer 的问题 50分 我是菜鸟!!今天来请大家帮一个忙!关于asp.net调用客户机的记事本
骓验证成功生成session,那么不成功的时候当然就没有了
<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>
{
Response.Redirect(Aphttp://130.130.10.87/hnwy/logon.aspx",true);
}
没有搞错吧!Session["MEMBER_ID"]==null 转过去 当然还是 null 了
if(Session["MEMBER_ID"]==null)
{
Response.Redirect(Aphttp://130.130.10.87/hnwy/index.aspx",true);
}
是在页面logon.aspx判断SESSION是否存在,如果不存在就不能只用这个页面的功能,并重定向到首页INDEX。ASPX。
(其他页面也有对于SESSION[“MEMBERID“]的判断)
Session只有在一个AppDomain才能用
<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>
{
// 在此处放置用户代码以初始化页面
//登陆校验玛
string VNum=(string)Session["VNum"];
Session.Abandon();
ViewState["VNum"]=VNum;
}
就是Session.Abandon();的恶果。不过我也奇怪,
Page_Load是最先执行的事件,也就是说SESSION["MEMBER_ID"]
是在执行Session.Abandon()之后产生的SESSION,也有影响么????
是在执行Session.Abandon()之后产生的SESSION,也有影响么????
=======================SESSION是Context的一个Property, 你原来Context在Redirect到另一个page的时候并没有消失, 所以新Page里的Session还是原来那个, 在Page_Load的时候Abandon, Session没了,所以当然Session["member_id"]也没了