单击注销按钮清除会话 [英] clear session on click of logout button

查看:105
本文介绍了单击注销按钮清除会话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用empID和密码登录的应用程序.我已经在会话中添加了EmpID的值,并在aspx页面中将其用于某些验证.
我面临的问题是当我登录并打开一个类似于default2.aspx的页面并从浏览器复制URL时.我已经在default2.aspx页面上放置了一个注销按钮,在其中我将这些函数称为

I m working on an application in which i log in using empID and password. I ve added the value of EmpID in session and using it in aspx pages for certain validations.
The problem I am facing is when I log in and open a page like default2.aspx and copy the url from browser. I ve placed a logout button on default2.aspx page in which I ve called these functions

session.abandon()
session.clear()




它们都不起作用,例如,当我按注销按钮时,我成功重定向到主登录页面,从而清除了会话值,但是当粘贴default2.aspx页面的url时,我的应用程序只是进入了该页面,而没有任何会话值错误,即使page_load函数也没有不能在我可以检查会话是否具有某些值的地方运行.

我只需要注销后每当用户将default2.aspx的URL粘贴到同一浏览器中(而不关闭它)时,都应该给他一个会话已过期的错误!登录以继续

请help




none of them is working i.e. when i press logout button i redirected succesfully to main login page clearing the session values but when paste the url of default2.aspx page, my application just enters the page without any session value errors,even the page_load function doesn''t run where i can check if session has some values.

I just need that whenever user paste the url of default2.aspx in same browser(without closing it) after logout, it should give him an error that session expired!Login to continue

Pls help

推荐答案

查看此提示/技巧

注销后浏览器后退按钮问题 [
Look at this Tip/Trick

Browser back button issue after logout[^]


您提到了
当我按下注销按钮时,我成功地重定向到主登录页面,从而清除了会话值,但是当粘贴default2.aspx页面的url时,我的应用程序仅进入该页面而没有任何会话值错误,即使page_load函数也是如此."请在我可以检查会话是否具有某些值的地方运行."

您是否正在该页面上检查会话变量?

假设您有会话变量Session["UserName"] = "Something".当您调用Session.Abandon()时,它将销毁所有会话对象.因此Session["UserName"]变为空.
您需要在Page_Load(中检查的是

You mentioned
"when i press logout button i redirected succesfully to main login page clearing the session values but when paste the url of default2.aspx page, my application just enters the page without any session value errors,even the page_load function doesn''t run where i can check if session has some values."

Are you checking for session variable on that page ?

Let say, you have session Variable Session["UserName"] = "Something" . When you do call Session.Abandon(), it destroy the all session object. So Session["UserName"] became null.
What you need to check in your Page_Load() is

if(Session["UserName"] != null )
  {
    // Do your Stuff
  }
   else
   {
    // redirect to login page
   }



对于通用实现,请创建一个具有所有与全局验证相关的检查的基页类,并从全局基页继承其他页面,因此您无需为所有页面编写此逻辑!
如果您真的想看看会话如何清除会话变量,请看一下
ASP.NET内部: 清除ASP.NET会话变量"深入研究 [ ^ ]

希望这会有所帮助!



for generic implementation create a Base Page Class with all the global validation related checks and inherited other page from global base page, so you do not need to write this logic for all pages !

If you really interested to look how session clears session variable, have a look
ASP.NET Internals : "Clearing ASP.NET Session Variables" a in-depth look[^]

Hope this will help !


这篇关于单击注销按钮清除会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆