【问题标题】:Static class storing current user in web application在 Web 应用程序中存储当前用户的静态类
【发布时间】:2020-06-04 16:49:15
【问题描述】:

我是 asp.net mvc 5 中的 Web 应用程序的新手。我很好奇静态类在 Web 应用程序中的行为方式。我想知道我的程序将如何运行。

假设我有 CurrentUser 静态类,它存储记录的用户 ID。

public static class CurrentUser{
     public static int UserId {get; set;}
}

每当用户登录时设置。 我的应用在外部服务器中。

如果发生以下情况会发生什么:

  1. 用户 A 登录 -> 用户 ID 设置为 1,然后用户 B 登录(他们从不同的身份访问)因此用户 ID 设置为 2。当用户 A 想要执行需要检查其 ID 的操作时,是 1 还是 2?
  2. 我检查了一个场景,其中 2 个不同的人同时从一台电脑登录(不同的选项卡),我知道他们两个的用户 ID 都是 2(当用户 B 作为应用程序的第二个登录时)。如何解决这个问题?

我已经阅读:Static classes in web applications。 我知道我的解决方案可能容易出错,因为每个人都可以访问该类,但我不知道网络应用程序中的静态类是否不是按用户存储的(线程?)?

【问题讨论】:

    标签: c# asp.net-mvc web-applications static-classes


    【解决方案1】:

    如果您将当前用户存储在会话存储中,它会比静态类更好。因为有一个静态类和字段的副本,并且对于每个用户登录,都会保留最后一次登录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 2016-09-05
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      相关资源
      最近更新 更多