Объекты профиля пользователя пусты, даже если пользователь правильно вошел в систему?

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

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

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


person Ahmed Atia    schedule 01.04.2010    source источник


Ответы (2)


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

Чтобы получить доступ к пользователю:

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

Чтобы получить доступ к профилю:

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

(Login1 — это ваш элемент управления входом в систему.)

person Slauma    schedule 01.04.2010
comment
Я пробовал это, Profile.GetProfile(Login1.UserName); но это не работает. - person Ahmed Atia; 01.04.2010
comment
@Ahmed: Что не работает? Вы имеете в виду, что все поля-члены возврата Profile.GetProfile(Login1.UserName) все еще пусты? - person Slauma; 01.04.2010
comment
Сейчас работаем, извините за неудобства. - person Ahmed Atia; 01.04.2010

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

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

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

person Brian Mains    schedule 01.04.2010