在asp.net中如何检查session是否过期我在web.config文件中指定了session超时时间。当会话超时时,我没有被重定向到登录页面,但我收到一条错误消息,指出对象引用未设置为实例。谁能告诉我解决方案?您可以检查HttpContext.Current.User.Identity.IsAuthenticated属性,这将使您知道当前是否有经过身份验证的用户。编辑您可以使用IsNewSession属性检查会话是否是从页面请求创建的"];if((null!=cookieHeader)&&(cookieHeader.IndexOf("ASP.NET_SessionId")>=0)){Response.Redirect("sessionTimeout.htm");}}}}将userid存储在会话变量中,并检查其他页面继承后创建的母版页或基页表单...并在页面加载时检查userid是否存在,如果不存在则重定向到登录页面if(Session["Userid"]==null){//sessionexpireredirecttologinpage}我不想在代码中检查会话变量,而是使用FormAuthentication。它们具有重定向到web.config中指定的给定登录页面的内置功能。但是,如果您想明确检查会话,您可以在Pranay的回答中检查之前在会话中创建的任何变量的NULL值。当会话过期时,您可以创建Login.aspx页面并在其中写入消息FormAuthentication将自动重定向到FormAuthentication部分中给出的loginUrl问题是您不能为登录和SessionExpire设置单独的页面,因此您必须在登录中进行。显示/隐藏aspx上的某些部分以进行双向操作。还有另一种方法可以在超时后重定向到sessionexpire页面而不更改formauthentication->loginurl,请参见此链接:http://www.schnieds.com/2009/07/aspnet-session-expiration-redirect。html使用Session.Contents.Count:if(Session.Contents.Count==0){Response.Write(".NETsessionhasExpired");响应.End();}else{InitializeControls();上面的代码假设您在用户第一次访问您的网站时至少创建了一个会话变量。如果您不这样做,那么您很可能没有为您的应用程序使用数据库。在您的情况下,您可以使用下面的示例手动分配会话变量。protectedvoidPage_Load(objectsender,EventArgse){Session["user_id"]=1;}祝你好运!检查它是否为空,如if(Session["mykey"]!=null){//Session未过期}else{//Session已过期}我使用@Adi-lester回答并添加一些方法。验证会话是否活跃的方法publicstaticvoidSessionIsAlive(HttpSessionStateBaseSession){if(Session.Contents.Count==0){Response.Redirect("Timeout.html");}else{InitializeControls();}}在页面加载时在protectedvoidPage_Load(objectsender,EventArgse){Session["user_id"]=1;中创建会话变量}创建SaveData方法(但您可以在所有方法中使用它)protectedvoidSaveData(){//验证Session是否有效SessionIsAlive(Session);//SaveDataProcess//bla//bla//bla}这样很多人检测session是否过期。下面的代码可以帮助你。protectedvoidPage_Init(objectsender,EventArgse){if(Context.Session!=null){if(Session.IsNewSession){HttpCookienewSessionIdCookie=Request.Cookies["ASP.NET_SessionId"];if(newSessionIdCookie!=null){stringnewSessionIdCookieValue=newSessionIdCookie.Value;if(newSessionIdCookieValue!=string.Empty){//这意味着Session超时,新Session开始Response.Redirect("Login.aspx");}}}}}这里我在查看Session值(上一页文本框里填了两个值)以上是C#学习教程:如何在asp.net中查看session是否过期分享的所有内容,如果对大家有用,需要进一步了解C#希望大家多多关注教程——protectedvoidPage_Load(objectsender,EventArgse){if(Session["sessUnit_code"]==null||Session["sessgrcSerial"]==null){Response.Write("");}else{lblUnit.Text=Session["sessUnit_code"].ToString();LblGrcSr.Text=Session["sessgrcSerial"].ToString();}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
