如何在注销时清除会话
当用户单击注销时,我将用户重定向到登录页面,但我不认为它会清除任何应用程序或会话,因为当用户重新登录时,所有数据都会保留。
当前登录页面有一个登录控件,并且后面的代码该页面仅连接登录验证。
有人可以指导我阅读有关处理 ASP.NET 网站登录和注销的优秀教程或文章吗?
I redirect the user to the login page when user click log out however I don't think it clears any application or session because all the data persisted when the user logs back in.
Currently the login page has a login control and the code behind on the page is only wired up the login Authenticate.
Can someone direct me to a good tutorial or article about handling log in and out of ASP.NET web sites?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
我希望
Session.Abandon()
Session.Clear()
不会导致 End 触发,并且来自客户端的进一步请求不会引发 Session Start 事件。I would prefer
Session.Abandon()
Session.Clear()
will not cause End to fire and further requests from the client will not raise the Session Start event.Session.Abandon()
销毁会话并触发Session_OnEnd
事件。Session.Clear()
只是从对象中删除所有值(内容)。 具有相同密钥的会话
仍然活动
。因此,如果您使用 Session.Abandon(),您将丢失该特定会话,并且用户将获得一个新的会话密钥。 例如,当用户
注销
时,您可以使用它。如果您希望用户保留在同一会话中(例如,如果您不希望他重新登录)并重置其所有会话特定数据,请使用 Session.Clear() 。
Session.Abandon()
destroys the session and theSession_OnEnd
event is triggered.Session.Clear()
just removes all values (content) from the Object. Thesession with the same key
is stillalive
.So, if you use
Session.Abandon()
, you lose that specific session and the user will get anew session key
. You could use it for example when the userlogs out
.Use
Session.Clear()
, if you want that the user remaining in the same session (if you don't want him to relogin for example) and reset all his session specific data..NET core 的清除会话的方式略有不同。 没有
Abandon()
函数。ASP.NET Core 1.0 或更高版本
在此处查看 api 参考
.NET Framework 4.5 或更高版本
在此处查看 api 参考
The way of clearing the session is a little different for .NET core. There is no
Abandon()
function.ASP.NET Core 1.0 or later
See api Reference here
.NET Framework 4.5 or later
See api Reference here
session.abandon() 不会从浏览器中删除 sessionID cookie。 因此,此后的任何新请求都将采用相同的会话 ID。
因此,使用 Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "")); 在 session.abandon() 之后。
session.abandon() will not remove the sessionID cookie from the browser. Therefore any new requests after this will take the same session ID.
Hence, use Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "")); after session.abandon().
对于.Net核心
for .Net core
会话.Clear();
Session.Clear();
转到项目中的文件 Global.asax.cs 并添加以下代码。
它对我有用..!
参考链接
清除注销 MVC 4 上的会话
Go to file Global.asax.cs in your project and add the following code.
It worked for me..!
Reference link
Clear session on Logout MVC 4
http://msdn.microsoft.com/en-us/library/ms524310.aspx
以下是有关 HttpSessionState 对象的更多详细信息:
http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate_members.aspx
http://msdn.microsoft.com/en-us/library/ms524310.aspx
Here is a little more detail on the
HttpSessionState
object:http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate_members.aspx
我使用以下方法清除会话并清除
aspnet_sessionID
:I use following to clear session and clear
aspnet_sessionID
: