关闭浏览器窗口时运行HttpContext.Cache.Remove(asp.net c#vs 2012)

时间:2018-01-19 20:27:35

标签: asp.net vb.net session caching httpcontext

我有以下问题,我正在使用vb.net visual studio 2012进行项目,我通过HttpContext.Cache管理会话,以消除存储在缓存中的会话,添加执行清理过程的按钮,但是我想在关闭浏览器标签或直接关闭整个浏览器(Chrome,Safari,Opera,Internet Explorer)时以相同的方式添加它。

用于会话中的注册用户

Public Sub registrarSesion(ByVal contexto As HttpContext, ByVal nombreusuario As String)
    Dim TimeOut As TimeSpan = New TimeSpan(0, 0, contexto.Session.Timeout, 0, 0)
    nombreusuario = nombreusuario.Trim()
    If contexto.Cache(nombreusuario) Is Nothing Then contexto.Cache.Insert(nombreusuario, contexto.Session.SessionID, Nothing, DateTime.MaxValue, TimeOut, System.Web.Caching.CacheItemPriority.NotRemovable, Nothing)
    contexto.Session("nombreusuario") = nombreusuario
End Sub

用于删除会话中的用户

   Public Sub EliminarRegistro(ByVal contexto As HttpContext)
    If contexto.Session("nombreusuario") IsNot Nothing Then contexto.Cache.Remove(contexto.Session("nombreusuario").ToString())
End Sub

此代码是从退出按钮

调用的
Protected Sub CerrarSesion_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles CerrarSesion.Click
    LiberarSesion()
    FormsAuthentication.SignOut()
    Session.Abandon()
    Response.Redirect("~/login.aspx", False)
    ClosePag(Me.Page)        
End Sub

和方法LiberarSesion()

 Public Shared Sub LiberarSesion()
    Dim clase As ValidaSesion = New ValidaSesion()
    clase.EliminarRegistro(HttpContext.Current)
End Sub

非常感谢你们:)

0 个答案:

没有答案