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. После аутентификации страница должна быть обновлена ​​для входа в систему.

Другие вопросы по тегам