Класс Stati c, хранящий текущего пользователя в веб-приложении - PullRequest
0 голосов
/ 20 февраля 2020

Я новичок в веб-приложении в asp. net mvc 5. Мне интересно, как классы stati c ведут себя в веб-приложении. Я хотел бы знать, как будет вести себя моя программа.

Допустим, у меня есть класс CurrentUser stati c, в котором хранится идентификатор зарегистрированного пользователя.

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

, который устанавливается всякий раз, когда пользователь регистрируется in. Мое приложение находится на внешнем сервере.

Так что же произойдет, если:

  1. Вход пользователя A -> userId установлен на 1, затем вход пользователя B (они получают доступ чтобы из разных мест), поэтому для идентификатора пользователя установлено значение 2. Когда пользователь А хотел бы выполнить действие, для которого необходимо проверить его идентификатор, будет ли оно равным 1 или 2?
  2. Я проверил один сценарий, в котором 2 разных человека входят в систему с один p ​​c одновременно (разные вкладки), и я знаю, что идентификатор пользователя будет равен 2 для них обоих (когда пользователь Б вошел в систему как второй в приложении). Как решить эту проблему?

Я уже прочитал: Stati c классы в веб-приложениях . Я знаю, что мое решение может быть подвержено ошибкам, потому что каждый имеет доступ к этому классу, но я не знаю, хранятся ли классы stati c в веб-приложении для каждого пользователя (поток?)?

1 Ответ

0 голосов
/ 20 февраля 2020

Если вы храните текущего пользователя в хранилище сеансов, это будет лучше, чем класс * stati c. Поскольку существует одна копия класса и полей stati c, и для каждого входа пользователя сохраняется последний вход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...