У меня странная проблема с входом пользователя в наше приложение 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
, учитывая, что пользователь существует?