Я использую в своем приложении Session
для хранения некоторых данных, таких как имя пользователя (для написания приветствия, ...) и т. Д. Кроме того, я использую FormsAuthentication
для аутентификации пользователя, поэтому контроллеры имеют такой код:Хранение данных сеанса в asp .net mvc
protected void SetAuthCookie(int userId)
{
FormsAuthentication.SetAuthCookie(userId.ToString(), true);
User user = Repositories.UserRepository.GetUserById(userId);
Session["name"] = user.Name;
Session["email"] = user.Email;
Session["balance"] = user.TotalBalance + "/" + user.ActiveBalance;
Session["isConfirmed"] = user.IsConfirmed;
Session["phone"] = user.Phone;
}
Так что, когда я перезапустить приложение после некоторых изменений коды данные сеанса уничтожаются, но пользователь еще проверка подлинность, так что я очень и я хочу это исправить. С одной стороны, я могу где-то создать код, который будет проверять, совместимы ли данные сеанса и обновить его в противном случае. С другой стороны, могу ли я пропустить некоторую технику хранения этих данных в правильном направлении?
Какое решение подходит в этой ситуации?
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
</providers>
</sessionState>
cookies сохраняются через сеансы. в чем проблема? когда вы обнаруживаете файл cookie, задайте значения сеанса. – DLeh
также, использование сеанса не рекомендуется с помощью MVC. MVC должен быть как можно более безграждан, и полагаться на сеанс нарушит это. – DLeh
Иногда пользователь аутентифицируется, но данные сеанса больше не существуют. Это происходит, когда я перезапускаю приложение после изменений кода, и я боюсь этой ситуации в другом случае – lenden