Проблема с Membership.GetUser (User.Identity.Name); - PullRequest
1 голос
/ 29 мая 2011

Я вставил следующий алгоритм в событие контроля входа в систему. Он запускается после того, как пользователь вошел в систему. Выдается исключение nuller point.

Ответ обновлен !! Выдается новое исключение, оно говорит мне, что приведение неверно

   MembershipUser CurrentUser = Membership.GetUser(Login1.UserName,true);
        int i = (int)CurrentUser.ProviderUserKey;

Я предполагаю, что это событие вызывается только в том случае, если пользователь успешно вошел в систему и не вышел из строя. Если я использую другое событие или объекты пожалуйста помогите !!!

Ответы [ 3 ]

1 голос
/ 29 мая 2011
 protected void Login1_LoggedIn(object sender, EventArgs e)
    {
        MembershipUser user = Membership.GetUser(Login1.UserName, true);

затем используйте

user.ProviderUserKey
1 голос
/ 29 мая 2011

Код, который вы ввели, должен работать, но вы также можете использовать один без параметров

Membership.GetUser();

это помогает вам, когда пользователь вошел в систему. Но когда ни один пользователь не вошел в систему, User.Identity.Name неверно. Вы можете проверить с помощью User.Identity.IsAuthenticated

на странице входа используйте это:

MembershipUser user = Membership.GetUser(Login1.UserName, true);
1 голос
/ 29 мая 2011

Вам нужно получить текущего пользователя из текущего HTTP-контекста. Я полагаю, что статический экземпляр, который вы передали методу GetUser, не будет заполнен учетными данными пользователей.

Дайте попробовать:

MembershipUser CurrentUser = Membership.GetUser(this.Context.User.Identity.Name);

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

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