首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在关闭浏览器或显式logou时明确设置asp.net会话到期?

在关闭浏览器或显式logout时明确设置ASP.NET会话到期需要使用SessionStateMode和SessionStateTimeSpan属性配置会话状态模式和服务器端生存时间。可以通过以下步骤来实现:

1.在web.config文件中启用会话状态

代码语言:xml
复制

<system.web>

代码语言:txt
复制
  <compilation debug="true" targetFramework="4.6.1"/>
代码语言:txt
复制
  <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424;ssl=off;cookieless=False;sqlConnectionString=data source=localhost;User ID=sa;Password=password;MultipleActiveResultSets=True;AppDomainAppId=555;applicationPool=DefaultAppPool"/>

</system.web>

代码语言:txt
复制

2.在控制器或使用MVC Razor语法中设置会话超时间

代码语言:csharp
复制

HttpContext.Session"YourKey" = "YourValue";

// 设置会话状态生存时间

Session.Timeout = 120; // 120秒后自动超时,0为始终有效

代码语言:txt
复制

3.使用JavaScript或jQuery操作Session

代码语言:javascript
复制

setTimeout(function () {

代码语言:txt
复制
   if (sessionStorage && sessionStorage.getItem("YourKey")) {
代码语言:txt
复制
       // 设置会话状态生存时间
代码语言:txt
复制
       sessionStorage.setItem("YourKey", "YourValue");
代码语言:txt
复制
   } else {
代码语言:txt
复制
       // 会话已过期,需要重新登录
代码语言:txt
复制
       window.location.href = "/Account/Logout";
代码语言:txt
复制
   }

},120000); // 设置2分钟会话过期

代码语言:txt
复制

这样就可以实现ASP.NET会话过期,在关闭浏览器或显式logout时会话超时了。

如果你有其他问题,欢迎联系我。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET中常用的优化性能的方法(转贴,Icyer收集整理)

ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭收回连接,等待下一次的连接请求。   ...若关心此问题,请监视与 ASP.NET Applications 性能对象关联的 Cache Total Turnover Rate 性能计数器。高周转率可能说明存在问题,特别是当项在到期前被移除。...变量不需要类型声明,并能够简单地通过使用来创建它们。当从一个类型到另一个类型进行分配,转换将自动执行。不过,这种便利会大大损害应用程序的性能。...若发生下面任何一种情况,则变量是晚期绑定的: 被声明为 Object。 是无类型声明的类的字段。 是无类型声明的专用函数方法成员,并且无法从其使用推断出类型。...当不使用会话状态禁用它 并不是所有的应用程序页都需要针对于具体用户的会话状态,您应该对任何不需要会话状态的应用程序页禁用会话状态。

2.7K100

【性能优化】ASP.NET常见性能优化方法简述

ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭收回连接,等待下一次的连接请求。...若关心此问题,请监视与 ASP.NET Applications 性能对象关联的 Cache Total Turnover Rate 性能计数器。高周转率可能说明存在问题,特别是当项在到期前被移除。...变量不需要类型声明,并能够简单地通过使用来创建它们。当从一个类型到另一个类型进行分配,转换将自动执行。不过,这种便利会大大损害应用程序的性能。...若发生下面任何一种情况,则变量是晚期绑定的:被声明为 Object,是无类型声明的类的字段,是无类型声明的专用函数方法成员,并且无法从其使用推断出类型。   ...当不使用会话状态禁用它 并不是所有的应用程序页都需要针对于具体用户的会话状态,您应该对任何不需要会话状态的应用程序页禁用会话状态。

4K60
  • 解读selenium webdriver

    /标签页 当你完成一个窗口标签页的操作,并且它不是浏览器中最后一个打开的窗口标签页,你应该关闭它,并切换回之前使用的窗口。...在会话结束退出浏览器 当你完成浏览器会话,你应该调用退出,而不是关闭。 driver.quit() Quit的作用: 关闭所有与WebDriver会话相关联的窗口和标签。...混合使用等待和隐等待会导致意想不到的后果,即即使元素可用条件为真,等待的时间也会达到最长。 警告:不要混合隐等待。不要混合隐等待。这样做会导致不可预知的等待时间。...例如,设置等待为10秒,等待为15秒,可能会导致20秒后发生超时。 隐等待是告诉WebDriver,当试图找到一个多个元素,如果它们不是立即可用,则会在一定时间内轮询DOM。...默认设置为0,意味着禁用。一旦设置,隐等待将在会话的整个过程中被设置

    6.7K30

    Asp.Net MVC3.0网站统计登录认证的在线人数

    3、在Session失效、用户登出、浏览器关闭的情况触发,全局的会话函数进行对全局变量Application["count"]进行累减1的操作。   ...有关Session的知识可以参考http://www.cnblogs.com/Jolinson/p/3604512.html 正文  第一步:新建一个Asp.Net MVC3.0的Web项目,选择Razor...protected void Application_Start() { Application["count"] = 0; ///在应用程序第一次启动初始化在线人数为...(登出,浏览器关闭,Session到期失效) protected void Session_End(object sender, EventArgs e) {...针对关闭浏览器网页触发事件,兼容各个浏览器的问题暂未考虑,如果你对此感兴趣,记得先用IE进行测试哦。如果发现问题希望及时通知,以便对方案进行更改。

    1K20

    理解ASP.NET Core - Cookie 的身份认证

    context.Request.Path, OriginalPathBase = context.Request.PathBase }); // 如果有指定的身份认证方案...(Session),当浏览器关闭后,Cookie便会被清除(实际上,现在的部分浏览器会话恢复功能,浏览器关闭后重新打开,Cookie也会跟着恢复,仿佛浏览器从未关闭一样)。...Cookie.SameSite:设置通过浏览器跨站发送请求决定是否携带Cookie的模式,共有三种,分别是None、Lax和Strict。...通过浏览器发送同站请求跨站的部分GET请求,可以携带Cookie。 SameSiteMode.Strict:只有通过浏览器发送同站请求,才会携带Cookie。...会话信息的存储介质多种多样,可以是内存、也可以是分布存储中间件,Redis等,接下来我就以内存为例进行介绍(Redis的方案可以在我的示例程序源码中找到,这里就不贴了)。

    96710

    Http Cookie机制及Cookie的实现原理

    Cookie是解决HTTP无状态性的有效手段,服务器可以设置读取Cookie中所包含的信息。...用户再次访问该网站浏览器会发送该Cookie(Cookie未到期)到服务器,服务器对该凭据进行验证,合法使用户不必输入用户名和密码就可以直接登录。 本质上讲,Cookie是一段文本信息。...Cookie的类型 Cookie总由用户客户端进行保存的(一般是浏览器),按其存储位置可分为:内存Cookie和硬盘Cookie。...内存Cookie存储在内存中,浏览器关闭后就会消失,由于其存储时间较短,因此也被称为非持久Cookie会话Cookie。...硬盘Cookie保存在硬盘中,其不会随浏览器关闭而消失,除非用户手工清理到了过期时间。由于硬盘Cookie存储时间是长期的,因此也被称为持久Cookie。 3.

    71830

    Session、Cookie、Token三者关系理清了吊打面试官

    会话 Cookie 存储在内存中,永远不会写入磁盘,当浏览器关闭,此后 Cookie 将永久丢失。如果 Cookie 包含有效期 ,则将其视为持久性 Cookie。...还有一种是 Cookie的 Secure 和 HttpOnly 标记,下面依次来介绍一下 会话 Cookies 上面的示例创建的是会话 Cookie ,会话 Cookie 有个特征,客户端关闭 Cookie...但是,Web 浏览器可能会使用会话还原,这会使大多数会话 Cookie 保持永久状态,就像从未关闭浏览器一样。...永久性 Cookies 永久性 Cookie 不会在客户端关闭过期,而是在特定日期(Expires)特定时间长度(Max-Age)外过期。...窃取的 Cookie 可以包含标识站点用户的敏感信息, ASP.NET 会话 ID Forms 身份验证票证,攻击者可以重播窃取的 Cookie,以便伪装成用户获取敏感信息,进行跨站脚本攻击等。

    2.1K20

    ASP.NET MVC编程——验证、授权与安全

    public override object TypeId { get; } // 获取设置有权访问控制器操作方法的用户。...HttpContextBase httpContext) { bool ret = false; //获得用户信息(从本地Session分布缓存中获取...cookie:存储在浏览器内存中,浏览器每次请求通过Http头进行传递 2)持久性cookie:存储在硬盘上,同样通过Http头进行传递 二者的区别:会话cookie常在会话结束失效,而持久性cookie...,浏览器无法访问 2)在编写代码为每个cookie单独设置 Response.Cookies["cok"].Value = Guid.NewGuid().ToString(); Response.Cookies...3)使用ViewModel,明确规定View使用的数据模型 4.5开放重定向 防御方法: 使用Url.IsLocalUrl检测是否为本地url 4.6 SQL注入攻击 防御方法: 通过参数注入非法获得修改网站数据

    3.1K60

    通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行

    LoadControl 和输出缓存 极少有不使用用户控件的 ASP.NET 应用程序。在出现母版页之前,开发人员使用用户控件来提取公用内容,页眉和页脚。...我曾经亲眼看到该问题在 ASP.NET 生产服务器中出现过两次,这两次都是通过关闭输出缓冲来解决的。后来我了解到有一个比禁用输出缓存更好的解决方案。以下是我第一次遇到该问题的情况。...即使 ASP.NET 2.0 视图状态大致是 ASP.NET 1 x 视图状态的一半大小,一个糟糕的 GridView 也可以容易地将浏览器和 Web 服务器之间的连接的有效带宽减少 50% 更多。...="ReadOnly" ... %> 最后,如果页面需要对会话状态进行读/写访问,则省略 EnableSessionState 属性将其设置为 true: <%@ Page EnableSessionState...线程池饱和 在执行数据库查询并等待 15 秒更长时间来获得返回的查询结果,我经常对看到的实际的 ASP.NET 页数感到非常惊讶。(我也等待了 15 分钟才看到查询结果!)

    3.5K80

    看完这篇 Session、Cookie、Token,和面试官扯皮就没问题了

    会话 Cookie 存储在内存中,永远不会写入磁盘,当浏览器关闭,此后 Cookie 将永久丢失。如果 Cookie 包含有效期 ,则将其视为持久性 Cookie。...还有一种是 Cookie的 Secure 和 HttpOnly 标记,下面依次来介绍一下 会话 Cookies 上面的示例创建的是会话 Cookie ,会话 Cookie 有个特征,客户端关闭 Cookie...但是,Web 浏览器可能会使用会话还原,这会使大多数会话 Cookie 保持永久状态,就像从未关闭浏览器一样。...永久性 Cookies 永久性 Cookie 不会在客户端关闭过期,而是在特定日期(Expires)特定时间长度(Max-Age)外过期。...窃取的 Cookie 可以包含标识站点用户的敏感信息, ASP.NET 会话 ID Forms 身份验证票证,攻击者可以重播窃取的 Cookie,以便伪装成用户获取敏感信息,进行跨站脚本攻击等。

    1.1K20

    C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService(二)

    只有在服务器返回合适的 CORS 头信息浏览器才会发送实际的请求。2、重定向如果服务器返回了 3xx 的状态码,并且设置了 Location 头,浏览器会自动跟随重定向。...攻击者通过诱导用户访问恶意网站,使用户在已登录的情况下执行一些敏感操作,更改密码、发起转账等。攻击原理:用户已登录了一个网站A,该网站在用户的浏览器设置了 Cookie。...DateTime result = DateTime.Parse(myString); // 可能引发 FormatException若要避免文化差异,可以使用 DateTime.ParseExact 方法并指定日期时间格式...连接池的生命周期通常应该与应用程序的生命周期保持一致,而不是在每次请求任务完成关闭连接池。连接池的创建和关闭应该发生在应用程序的初始化和终止阶段。...这通常发生在应用程序关闭,例如在应用程序的终止事件终止方法中。

    26810

    Linux CentOS7部署ASP.NET Core应用程序,并配置Nginx反向代理服务器

    前言:   本篇文章主要讲解的是如何在Linux CentOS7操作系统搭建.NET Core运行环境并发布ASP.NET Core应用程序,以及配置Nginx反向代理服务器。...因为好奇,因此就有了这篇文章关于如何在Linux CentOS7系统中配置.NET Core运行环境,部署项目和反向代理服务器的配置。...但是,Web 服务功能不像服务器( IIS、Apache Nginx)那样功能丰富。...使用以下yum命令安装Nginx : sudo yum install nginx 因为是首次安装 Nginx,通过运行以下命令启动:  sudo service nginx start 或者: ...设置系统启动启用Nginx: sudo systemctl enable nginx 查看系统防火墙状态: service iptables status 如下图所示我的防火墙是关闭的:  ?

    3.8K10

    HttpSession对象

    会话将保留指定的时间段,跨多个连接来自用户的页面请求。一个 会话通常对应于一个用户,该用户可能多次访问一个站点。...session 无论客户端还是服务器端都可以感知到,若重新打开一个新的浏览器,则无法取得之前设置 的 session,因为每一个 session 只保存在当前的浏览器当中,并在相关的页面取得。...* 2.手动设置到期时间 * 3.立刻销毁 * 4.关闭浏览器 * session底层依赖cookie,cookie对象默认只在浏览器中存活,关闭浏览器失效...从前面的 JESSIONID 可知道,session 的底层依赖 cookie 实现,并且该 cookie 的有效时间为关闭浏览器,从而 session 在浏览器关闭也相当于失效了(因为没有 JSESSION...# 关闭服务器 当关闭服务器,session 销毁。 Session 失效则意味着此次会话结束,数据共享结束。

    55370

    HttpSession的正确理解

    一个session的建立是从一个用户向服务器发第一个请求开始,而以用户结束session超时为结束。...使用的机理是: 从请求中提取HttpSession对象; 增加删除HttpSession中的属性; 根据需要关闭HttpSession使其失效。...HttpSessionActivationListener 当session在分布环境中跨JVM,实现该接口的对象得到通知。...一般来说不要求用户注册登录的公共服务系统(google)采用cookie做客户端session存储(google的用户偏好设置),而有用户管理的系统则使用服务端存储。...cookie”简单的说就是没有明确指明有效期的cookie,仅在浏览器当前进程生命期内有效,可以被后继的Set-Cookie操作清除掉。

    55820

    何在 ASP.NET Core 中重写 URL

    下面我我们将学习重写和重定向之间的区别,和何时以及如何在ASP.NET Core 中使用它们。...大多数HTML应用程序和一些需要身份认证的REST服务有一些像这样需要重定向的请求。这是一个经典的重定向场景。...并且重写可以保留请求信息,因此拥有POSTPUT操作具有与其关联的数据,则该数据将保持完整,然而重定向总是由浏览器以GET作为操作重新发出,因此无法保留和使用重定向前的数据。...它提供了设置基于 regEx的重写和重定向,以及许多不同的和一些常见的重写操作的能力。 URL重写中间件 加入需要对许多URL有复杂的规则需要遵循特定模式来重新路由内容,则使用中间件非常有用。...对于简单的用例,使用中间件处理重写,对于需要基于规则的评估的更复杂的用例,不需要重新发明轮子,因为ASP.NET Core提供了重写中间件,该中间件使用基于HTTP的重写模块中获得的所有常见正则表达式扩展

    3.2K20

    C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService(一)

    在强类型系统中,变量必须明确定义其类型,并且不允许在不经过类型转换的情况下进行不同类型之间的混合操作。...如果存在类型不匹配的情况,编译器会产生错误运行时会抛出异常。 2、类型声明在强类型系统中,变量通常需要在声明时明确指定其类型。这样的类型声明有助于提高代码的可读性和可维护性。...4、类型转换如果需要在不同类型之间进行操作,强类型系统通常要求进行的类型转换。这种要求可以帮助程序员更加意识到类型之间的转换,防止意外的类型错误。...解决方案2 - 使用分布缓存解决方案:使用分布缓存 Redis Memcached 将 Session 数据存储在独立的缓存服务器中,可以避免 Session 丢失的问题。...(内嵌代码块语法):1、用途用于在 ASP.NET 页面中嵌入服务器端代码,可以在其中编写 C# VB.NET 代码执行一些逻辑操作。2、执行时机内嵌代码块中的代码在页面渲染执行。

    16810

    Explicit Web Proxy web代理 ❀ 飞塔 (Fortinet) 防火墙

    代理 飞塔防火墙支持支持在一个或者多个物理接口上启用HTTPHTTPS代理,的web代理支持通过web浏览器PAC(Proxy auto-config)为web代理用户提供自动代理配置及...FTP会话代理。...启用代理 默认情况下代理功能是关闭的,需要开启后才能使用。 ① 选择菜单【系统管理】-【功能选择】,在安全功能选择里打开【显示代理】开关,点击【应用】。...配置代理 开启代理功能后,在菜单就会出现代理设置选项了。...③ 关闭浏览器的web代理,登录防火墙,查看代理策略,现在有流量数据了,说明刚才浏览器是走显示代理上网的。

    1.2K10
    领券