Membership.ValidateUser возвращает false и обновляет информацию о попытке входа, но GetUser возвращает null - PullRequest
0 голосов
/ 21 ноября 2018

У меня странная проблема с входом пользователя в наше приложение Asp.Net с использованием Sql Membership Provider.

В коде мы сначала пытаемся войти, используя Membership.ValidateUser, используя учетные данные, введенные в форме входа;если это возвращает false, мы пытаемся извлечь данные из имени пользователя, чтобы проверить причину сбоя входа в систему.

    If Membership.ValidateUser(UserName, Password) Then
        Return True
    Else
        Dim mu As MembershipUser = Membership.GetUser(UserName)
        If mu IsNot Nothing Then
            If mu.IsLockedOut Then
                'returns message saying that user is locked
            End If

            If mu.IsApproved = False Then
                'returns message saying that user is disabled
            End If

            'returns message saying that either user or password are incorrect
        Else
            'returns message saying that either user or password are incorrect
        End If
    End If

Странно то, что Membership.ValidateUser возвращает false и обновляет LastActivityDateв таблицах aspnet_Membership и aspnet_Users, а также FailedPasswordAttemptCount в aspnet_Membership; но Membership.GetUser(UserName) возвращает nothing.

Мы также попытались напрямую запустить хранимую процедуру aspnet_Membership_GetUserByName в базе данных, и она возвращает данные для указанного имени пользователя.

Пока что единственный пользователь, с которым у нас проблемы;другие пользователи могут войти в систему без проблем.

Есть идеи, почему не удается войти в систему и функция GetUser возвращает nothing, учитывая, что пользователь существует?

...