Получить текущего MembershipUser в Аутентификации с помощью форм - PullRequest
2 голосов
/ 13 июня 2011

Я хотел бы получить текущий MembershipUser со своей страницы.

Membership.GetUser();

возвращает значение NULL.

Невозможно использовать

HttpContext.Current.User.Identity.Name

, поскольку он возвращает имя моего профиля в соответствии с моей конфигурацией, чтобы также получить имя пользователя.

Как мне получить моего текущего пользователя?

Обновление: поставщик членства SqlMembershipProvider

Ответы [ 3 ]

10 голосов
/ 13 июня 2011
  1. Membership.GetUser () будет работать только для аутентифицированного пользователя.В противном случае он вернет ноль.Чтобы убедиться, что вы имеете дело с аутентифицированным запросом, вызовите «User.Identity.IsAuthenticated» на странице.Если у вас есть аутентифицированный запрос, но Membership.GetUser () по-прежнему возвращает ноль, то это означает, что имя пользователя, связанное с аутентифицированным пользователем, не может быть найдено в источнике данных Membership.Проверьте имя пользователя аутентифицированного пользователя с помощью «User.Identity.Name».

  2. Если вы вызываете одну из перегрузок Membership.GetUser (), которая принимает имя пользователя и возвращает нуль, то этот пользователь не существует в источнике данных Membership (или у нас есть ошибка).Один из способов легко проверить это - попробовать Membership.CreateUser () с тем же именем пользователя.Если это не выдает ошибку из-за дублированного пользователя, то вы знаете, что пользователь никогда не существовал.

  3. Membership.GetUser () никогда не должен был работать для анонимного пользователя.пользователь.Для обработки этого случая в Membership не было поддержки.

0 голосов
/ 13 июня 2011
Membership.GetUser();

Совершенно верно, у вас могут возникнуть проблемы с конфигурацией, дважды проверьте ваш web.config и убедитесь, что все правильно, особенно в разделе Forms .

0 голосов
/ 13 июня 2011

Вы пробовали Page.User.Identity.Name

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...