gpt4 book ai didi

c# - 放弃 session 而不全部清除

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

概览:我创建了一个具有客户区域和管理区域的系统。这两个区域都有不同的登录页面。用户可以在管理区域以用户 A 身份登录,同时在客户区域以 用户 B 身份登录。

当用户从客户或管理区域注销时,调用 Session.Abandon() 并删除客户和管理区域中的 session ,这是我不想做的发生

问题:我可以在注销时放弃 session 而不影响其他区域的 session 吗? (即:当我从客户区注销时,我应该在管理区保持登录状态)

更新: 我知道 Session.Clear() 可以解决这个问题,但我担心它可能会带来安全风险。

最佳答案

编写您的函数来检查 session 的客户 ID 是否 > 0、用户名不为空以及 ip 是否等于远程地址。

在 session 中存储 customer_id、customer_username 和 IP(为了安全)并只清除它们。当您调用您的函数时,它将返回该用户未签署为客户。

这同样适用于管理员。

没有必要销毁(放弃) session ,使其保持事件状态并存储其他信息。

public bool IsLoggedIn()
{
// You will have to check for the keys, if they are present in the Session container, first.

if(!Session.Containts("customer_id")
|| !Session.Contains("customer_username")
|| !Session.Contains("customer_ip"))
return false;

return Session["customer_id"] > 0
&& String.IsNullOrEmpty(Session["customer_username"])
&& Session["customer_ip"] = Request.ServerVariables("REMOTE_ADDR")
}

public void LogOut()
{
Session.Remove("customer_id");
Session.Remove("customer_username");
Session.Remove("customer_ip");
}

关于c# - 放弃 session 而不全部清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12088941/

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