Объекты профиля пользователя пусты, даже пользователь правильно вошел в систему? - PullRequest
0 голосов
/ 01 апреля 2010

Я использую asp: контроль входа, пользователь может войти в систему правильно, но при проверке информации о профиле пользователя в событии LoggedIn элемента управления входом все поля в объектах профиля являются пустыми. Кроме того, User.Identity.IsAuthenticated всегда возвращает false.

Но все эти проблемы решены при переходе на другую страницу.

Почему User.Identity.IsAuthenticated возвращает false, даже если пользователь вошел в систему правильно? И есть ли способ получить информацию о профиле пользователя в событии LoggedIn контроля входа в систему?

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

После входа в систему форма должна быть перенаправлена ​​на следующую страницу для заполнения основной информации о пользователе (свойство пользователя страницы / контекста) Вот почему было упомянуто использовать имя пользователя элемента управления.

Можете ли вы подождать, пока после перенаправления? Вам нужен прямой доступ? Login1.UserName должно работать; поместите туда отладчик и убедитесь, что значение заполнено.

Вы также можете попробовать: HttpContext.Current.Profile.GetProfile( ... )

0 голосов
/ 01 апреля 2010

В событии LoggedIn идентификаторы пользователя и профиля еще не обновлены. Попробуйте вместо этого:

Для доступа к пользователю:

MembershipUser aUser = Membership.GetUser(Login1.UserName);
// work with aUser ...

Для доступа к профилю:

ProfileCommon aProfile = Profile.GetProfile(Login1.UserName);
// work with the member fields in aProfile ...

(Login1 - ваш контроль входа в систему).

...