我想在用户会话开始时为每个用户启动一个类,以便在整个用户会话中使用单个类。我检查了out this post,但我不确定我应该放置这个Sessionhandler类。在global.asax里面?我该如何完成这项工作?
答案 0 :(得分:1)
这个类本身可以去任何地方,因为它是静态的,你只需要确保在访问时有正确名称空间的using
指令。
如果要创建某个类的实例并将其存储在用户的会话中(可能使用此SessionHandler类),那么您可以在Global.asax.cs中的Session_OnStart()处理程序中执行该操作:
protected void Session_OnStart()
{
// Do your work here
}
答案 1 :(得分:1)
我认为您将为所有经过身份验证的用户运行一段通用代码(可能是您提到的计时器)。
请查看以下步骤是否解决了您的问题。
<强> 1。在Session_OnStart中有用户初始化代码
如,
protected void Session_OnStart()
{
// Do user initialization here
Session["useridentifier"] = id;
Session["isAuthenticated"] = true;
}
<强> 2。从Controller类派生一个BaseController,这样你开发的所有其他控制器都将继承BaseController(de coupling)
如,
Public class BaseController : Controller
{
}
第3。拥有需要在构造函数中执行的Common方法
如,
Public class BaseController : Controller
{
public BaseController()
{
if((bool.Parse(Session["isAuthenticated"]))
{
// write the user specific code here.
}
}
希望这有帮助。
谢谢, 维杰