Я новичок в мире ASP.Net
MVC
и у меня есть базовый c вопрос о Session
, Identity
и процессе входа / выхода пользователя на основе браузера / закрытия вкладки.
Я храню некоторую информацию о пользователе, такую как UserName, UserType и статус регистрации, в сеансе при действии входа в систему контроллера учетных записей. Приложение использует Microsoft.Identity для входа и регистрации. Меню моих приложений заполняется в зависимости от типа пользователя и статуса регистрации.
Проблема заключается в том, что пользователь закрывает браузер и снова открывает его, каким-то образом пользователь все еще входит в систему, но переменные сеанса теряются. Я не понимаю, как пользователь все еще вошел в систему, когда браузер был закрыт? или пользователь получает вход в систему автоматически (каким-то образом), когда в следующий раз он снова открывает браузер? Если это так, я могу взять этот кусок кода и снова установить там переменную сеанса, чтобы приложение работало нормально.
Так пользователь входит в систему и устанавливает переменные сеанса
SignInStatus signInResult = SignInStatus.Failure;
try
{
signInResult = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, false);
}
catch (Exception e)
{
// Logs an error into the Kentico event log if the authentication fails
ExceptionHander.GetExceptionDetails(e, "SignIn");
}
// If the authentication was not successful, displays the sign-in form with an "Authentication failed" message
if (signInResult != SignInStatus.Success)
{
ModelState.AddModelError(String.Empty, "Invalid username and/or password.");
return View();
}
else
{
var existingUser = UserManager.FindByName(model.Email);
MySession.Current.UserID = existingUser.Id;
MySession.Current.Name = $"{existingUser.FirstName}{existingUser.LastName}";
var company = db.WIN_Company.FirstOrDefault(u => u.CompanyID == existingUser.Id);
Session["RegisterationStatus"] = company.RegistrationStatus;
}