gpt4 book ai didi

c# - 处理潜在 session 过期的正确方法

转载 作者:太空宇宙 更新时间:2023-11-03 13:56:33 26 4
gpt4 key购买 nike

我想知道当您在代码中定期使用存储在 session 中的值时,处理 session 可能到期的最佳(例如最有效、普遍接受的行业标准)方法是什么。

例如,我经常使用(在 C# 中)类似于以下的行:

Guid personGuid = (Guid)Session[SSPersonGuid];

我正在检查 Page_Load 中的值是否为空并进行相应处理,但是当用户在页面上时 session 可能会过期,在这种情况下,当他们单击页面上的按钮时,我们需要使用类似上面,会有一个NullReferenceException。

处理这个问题的最好方法是在每次使用之前检查是否为空:

if (Session[SSPersonGuid] == null) {...}

还是有什么我不知道的特殊情况?

最佳答案

What is the best (e.g. most efficient, commonly accepted, industrystandard) way to deal with the potential expiration of a session?

最好的办法是通过设置 a Out-Of-Process session state server 使其不会过期或 out-of-process SQL Server .

您也可以在 The Session_OnEnd Event 中检测到它

编辑:

Jeff Atwood 在这里所说的与 Scotts 的回答相对应:http://www.codinghorror.com/blog/2008/04/your-session-has-timed-out.html

I am inundated with session timeout messages every day from a varietyof sources, but I've never once seen a session expiration message fromgmail, for example. Here's what I suggest:

  1. Create a background JavaScript process in the browser that sendsregular heartbeats to the server. Regenerate a new cookie with timedexpiration, say, every 5 or 10 minutes.

  2. If you're worried aboutsession hijacking -- and you really should be -- use a HTTPS protectedconnection. This is an absolute no-brainer for financial institutionsof any kind.

关于c# - 处理潜在 session 过期的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11980148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com