MVC 4 простое членство. Как проверить, кто-то вошел в систему или нет
Я новичок в mvc 4 и не могу точно понять, как работало простое членство. После всех настроек я поместил этот код в AccountController, чтобы увидеть, как он работает и работает ли он вообще
string UserName1 = WebSecurity.CurrentUserName;
bool LoginResult= WebSecurity.Login("admin", "111111");
string UserName2 = WebSecurity.CurrentUserName;
WebSecurity.Logout();
И когда я запускаю отладчик, я вижу, что в конце концов закончил
UserName1 = ""
LoginResult = true
UserName2 = ""
Все в порядке, кроме UserName2. Почему пусто? Вход в систему был приостановлен... Также я не вижу UserID в WebSecurity и WebSecurity.IsAuthentificated имеет значение false Почему вход был успешным, но WebSecurity вообще не показывает его?
1 ответ
Логин не делает то, что вы думаете, что он делает. Он не сразу устанавливает текущего пользователя, вместо этого он устанавливает cookie в веб-браузере пользователей, и при обновлении следующей страницы asp.net распознает этот cookie и выдаст аутентифицированный запрос.
Это не относится к простому членству, так работает вся аутентификация в asp.net. После аутентификации страница должна быть обновлена для входа в систему.