当前位置: 首页 > 编程语言 > C#

与多个用户共享静态会话类

时间:2023-04-10 21:18:37 C#

静态会话类和多个用户我正在构建一个类来存储会话中的用户ID和用户角色。我不确定当多个用户同时访问该站点时此类将如何表现。有人看到这个问题吗?publicstaticclassSessionHandler{//***SessionStringValues************************privatestaticstring_userID="UserID";私有静态字符串_userRole="UserRole";//***设置和获取***************************************************************publicstaticstringUserID{get{if(HttpContext.Current.Session[SessionHandler._userID]==null){returnstring.Empty;else{返回HttpContext.Current.Session[SessionHandler._userID].ToString();}}设置{HttpContext.Current.Session[SessionHandler._userID]=value;}}publicstaticstringUserRole{get{if(HttpContext.Current.Session[SessionHandler._userRole]==null){returnstring.Empty;}else{返回HttpContext.Current.Session[SessionHandler._userRole].ToString();}}设置{HttpContext.Current.Session[SessionHandler._userRole]=value;}}}您发布的代码是我们这里的一些代码的精确副本。它已经工作了2年。每个用户访问都是它自己的会话。向服务器发出的每个请求都是一个新线程。即使同时有2个请求,每个请求的HttpContext.Current也是不同的。您将为每个连接获得一个新会话。没有两个用户会共享一个会话。每个连接都有自己的SessionID值。只要用户停留在您的页面上(不关闭浏览器等),用户就会从一个请求到下一个请求保持该会话。这对于访问您的应用程序的多个用户来说效果很好,因为将为访问您的应用程序的所有不同用户生成不同的sessionid。如果您在系统中定义两个不同的会话变量,它将以类似的方式工作。这就像用静态包装器类SessionHandler包装两个会话状态。以上就是C#学习教程:静态会话类及多人分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: