Membership.ValidateUser返回false并更新登录尝试信息,但GetUser返回null

时间:2018-11-21 01:48:00

标签: asp.net vb.net asp.net-membership membership-provider

我在使用Sql Membership Provider的Asp.Net应用程序中登录时遇到了这个奇怪的问题。

在代码中,我们首先尝试使用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并更新LastActivityDateaspnet_Membership表以及aspnet_Users中的FailedPasswordAttemptCountaspnet_Membership中; 但是 Membership.GetUser(UserName)返回nothing

我们还尝试了直接在数据库中运行aspnet_Membership_GetUserByName存储过程,它确实返回了该用户名的数据。

到目前为止,我们是唯一遇到问题的用户;其他用户可以顺利登录。

有什么想法为什么登录失败并且功能GetUser返回nothing并考虑到用户确实存在?

0 个答案:

没有答案
相关问题