gpt4 book ai didi

asp.net - 当 IsApproved 为 false 时验证 ASP.NET 成员资格用户名和密码

转载 作者:行者123 更新时间:2023-12-03 03:30:59 25 4
gpt4 key购买 nike

当 IsApproved 值为 FALSE 时,如何检查用户输入的密码是否与数据库中存储的密码匹配?

我希望做的事情如下......

  1. 用户注册 - 详细信息已保存且 IsApproved 设置为 false
  2. 用户收到带有成员(member)确认链接的欢迎电子邮件
  3. 用户点击电子邮件中的链接 - 此时 IsApproved 设置为 True
  4. 用户现在可以登录

好的,以上所有内容都很好,我没有发现任何问题。

我遇到的问题是......

当用户尝试登录并且他/她的 IsApproved 标志为 FALSE 时我需要将他/她的密码与存储在数据库中的密码进行交叉引用这就是我陷入困境的地方。

这个想法是交叉检查密码,如果用户输入了有效的凭据,则向用户显示一条消息,通过单击电子邮件等等来激活您的成员(member)资格。

但即使输入的密码匹配,因为我无法在代码中检查它,所以 ValidateUser 函数总是返回 false,因为 IsApproved 设置为 false!

有人能给我指出正确的方向吗?

另外,我实际上不需要查看密码,所以即使有一个密封函数,我也可以调用它来简单地确认密码是否匹配,这也很好......

下面是我的代码块..

        Public Function ValidateUser(ByVal Username As String, ByVal Password As String, ByRef PwdMatches As Boolean, ByRef Approved As Boolean) As Boolean Implements IMembershipService.ValidateUser
'
Dim ThisMember As MembershipUser = Nothing
Dim ThisResult As Boolean = Nothing
'
Approved = False
ThisResult = False
PwdMatches = False
If String.IsNullOrEmpty(Username) Then
Throw New ArgumentException("Value cannot be null or empty.", "Username")
ElseIf String.IsNullOrEmpty(Password) Then
Throw New ArgumentException("Value cannot be null or empty.", "Password")
ElseIf _Provider.ValidateUser(Username, Password) Then
ThisResult = True
Else
Try
ThisMember = _Provider.GetUser(Username, False)
Try
If (ThisMember Is Nothing) = False Then
Approved = ThisMember.IsApproved
Try
<!-- This is the point im stuck on -->
If Password_Matches_With_Password_In_Db Then
PwdMatches = True
Else
PwdMatches = False
End If
Catch ex As Exception
ThisResult = False
End Try
Else
ThisResult = False
End If
Catch ex As Exception
ThisResult = False
End Try
Catch ex As Exception
ThisResult = False
End Try
End If
Return ThisResult
ThisMember = Nothing
ThisResult = Nothing
End Function

最佳答案

  • 我认为一种方法是创建一个表来存储待批准的用户帐户。当用户注册时,用用户 ID 或用户名填充此表,或者设置一些标志来指示哪些用户的帐户尚未激活以及哪些邮件已发送。用户登录时检查此表,如果存在或未设置标志,则显示“激活您的帐户给用户”

  • 编写一个连接到数据库的函数,并使用 userId 从 Aspnet_Membership 表获取批准状态。列名称为 IsApproved 为 true 或 false

    调暗用户 As MembershipUser = Membership.GetUser(userName);
    Dim isApproved As Boolean = myMethodCheckIfUserIsApproved(user.ProviderUserKey);//用户ID

关于asp.net - 当 IsApproved 为 false 时验证 ASP.NET 成员资格用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14125899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com