Каков наилучший способ сохранить информацию о пользователе, введенную в MVC?

#c# #asp.net #model-view-controller

#c# #asp.net #модель-представление-контроллер

Вопрос:

У меня есть некоторая информация о пользователях, такая как личная информация и изображение профиля. Мне нужно, чтобы пользователь использовал эту информацию в моем веб-приложении. Я создал общедоступный класс, который я устанавливаю для пользователей при входе в систему, и я использую поля этого класса во всем веб-приложении. Правильный ли это способ? Есть ли лучший способ использовать эту информацию бесплатно?

Примечание: У меня более 2000 пользователей в таблице user.

Действие входа:

 var user = new LoginAction().getLogin(obj);
if (user!=null)
{
    FormsAuthentication.SetAuthCookie(obj.Username, false);
    Helper.loginUser = user;
}
  

Вспомогательный класс:

 public static tblUser loginUser;
  

Комментарии:

1. Сохраните данные в базе данных, просматривайте их по мере необходимости. static не сработает — поскольку она будет доступна всем зарегистрированным пользователям.

2. данные @mjwills находятся в базе данных. мне нужно сохранить информацию о пользователе во временном расположении.

3. Cache тогда, вероятно, это ваш лучший выбор.

Ответ №1:

Статический класс — не лучший выбор для хранения профиля пользователя в памяти. Первая проблема заключается в том, что Helper.loginUser всегда последний раз регистрировался в профиле пользователя. Сессия и кэш — лучший выбор для сохранения профиля пользователя в памяти, и после выхода пользователя из системы или истечения срока действия сессии память будет освобождена.

 var user = new LoginAction().getLogin(obj);
if (user!=null)
{
    FormsAuthentication.SetAuthCookie(obj.Username, false);
    Session["User"] = user;
}