遇到了一个愚蠢的问题...
所以现在我实现 Application_Start 来加载哈希表,效果很好。接下来在 Session_Start 中,我解析用户的 cookie 以检索他的姓名,这又一次可以正常工作。当我将他的用户名存储在 Global.asax.cs 的变量中时,就会出现问题。我并没有真正意识到这是所有进程/线程之间共享的变量。所以我想我的问题是你如何一次解析用户的cookie,然后将数据保存在进程/线程的其他地方。
遇到了一个愚蠢的问题...
所以现在我实现 Application_Start 来加载哈希表,效果很好。接下来在 Session_Start 中,我解析用户的 cookie 以检索他的姓名,这又一次可以正常工作。当我将他的用户名存储在 Global.asax.cs 的变量中时,就会出现问题。我并没有真正意识到这是所有进程/线程之间共享的变量。所以我想我的问题是你如何一次解析用户的cookie,然后将数据保存在进程/线程的其他地方。
您可以在会话中存储 cookie 并在以后使用它。您可以将任何对象存储在会话集合中,并在其过期之前检索它。你可以在这里阅读更多
分配给会话
Session["anyName"] = "value";
从会话对象中检索
string str = Session["anyName"].ToString();
这正是 ASP.NET 会话的意义所在。将这些信息存储在那里。它将仅特定于当前用户,而不是在所有用户之间共享。
顺便说一句,您可能还想检查ASP.NET 中的表单身份验证,只是为了确保您不会重新发明一些轮子。
你不能只使用会话吗?
Session["username"] = username;
var username = Session["username"];
会话绝对是我会去的方式。在 Session 中拥有大量数据可能会导致性能问题,但只为每个用户存储小字符串根本不重要。