#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;
}