为什么我需要使用自定义会话管理器
本文关键字:自定义 会话 管理器 为什么 | 更新日期: 2023-09-27 18:02:53
首先,请原谅我愚蠢的问题。我是ASP.net和c#的新手。当我在谷歌上了解asp.net中的会话时,我偶然发现了许多关于"自定义会话管理器"的讨论。
为什么我需要使用自定义会话管理器?我可以像下面的例子那样使用会话吗?
//Default.aspx
Session["name"] = "My Name";
然后//NextPage.aspx
Label1.Text = "Hello" + (string)Session["name"];
可以使用不同的会话管理器来更改会话存储在内存、文件或数据库中的行为。
不,您不需要"自定义会话管理器"-我一直在使用ASP。. NET使用了近10年,以前从未遇到过这个术语。
您的示例使用Session
是可以接受的(尽管对.ToString()
的调用不是, 是必要的,您可以将其直接转换为String
,以防止空值)。
一般来说,你只需要担心自己的Session
如果你是在一个多服务器的webfarm或负载均衡集群上工作。
有时需要创建一个名为Session Manager的类来管理在应用程序屏幕之间传递的所有信息。
在向导或任何过程中多次使用这些变量,这些变量最终是正确的,并且有必要删除或修改这些信息。通过这种方式,您可以通过对象组或变量组来实现。
我的建议是创建它并明智地使用(记住你正在使用服务器的(iis)内存)
想法示例:
public class SessionManager
{
//Groups of variables
public enum Groups
{
Users,
Processes
}
//Value keys
private static int USERID
{
get { return USERID"; }
}
private static string USERGUID
{
get { return "USERGUID"; }
}
//Properties
public String UserGuid
{
get { return this.session[USERGUID]; }
set { this.session[USERGUID] = value; }
}
...
//Finnish using values
public bool Finnish(Groups group)
{
switch (group)
{
case Groups.Users:
this.Session.Remove(USERID);
this.Session.Remove(USERGUID);
break;
case Groups.Processes:
this.Session.Remove(UP);
this.Session.Remove(DOWN);
default:
return false;
}
return true;
}
...
}
希望这对你有帮助!