gpt4 book ai didi

c# - ASP.Net 成员更改密码方法未显示

转载 作者:太空宇宙 更新时间:2023-11-03 21:57:40 24 4
gpt4 key购买 nike

我已经实现了一个自定义成员(member)提供程序。我的代码示例如下所示

public class CustomMembershipProvider : MembershipProvider
{
public override bool ChangePassword(string username, string oldPassword, string newPassword)
{
//logic for changing password
}

public override bool ValidateUser(string username, string password)
{
//logic for validating user credentials
}
}

然后,我在 web.config 文件中注册了上述自定义成员身份,方法是使用

<membership defaultProvider="CustomMembershipProvider">
<providers>
<clear/>
<add name ="CustomMembershipProvider" type="MyApplication.CustomMembershipProvider"/>
</providers>
</membership>

现在,当我想对用户进行身份验证时,我可以调用

System.Web.Security.Membership.ValidateUser(username, password);

这行得通。但是,当我想调用更改密码的方法时,我尝试调用:

System.Web.Security.Membership.ChangePassword(username, oldPassword, newPassword);

它给我提示 System.Web.Security.Membership 不包含 ChangePassword 的定义的智能感知和编译错误。

如何链接我的 ChangePassword 方法以从 System.Web.Security.Membership 调用,或者我是否以错误的方式解决了这个问题?

最佳答案

确保您的成员(member)提供者定义明确:

<membership defaultProvider="CustomMembershipProvider">
<providers>
<clear />
<add connectionStringName="ConnString" enablePasswordReset="true" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" name="CustomMembershipProvider" type="MyMembershipProvider" />
</providers>
</membership>

我认为 MyApplication.MyMembershipProvider 是您的自定义 Membership 类。我会重命名为其他名称,以使 web.config 以后更易于阅读,这样当您看到它时就知道类是什么。

但是,我认为您的问题的答案是,您需要利用 Membership 中的 Provider 类。由于您定义了自定义提供程序,因此您将使用它来执行一些自定义更改。

var didChange = System.Web.Security.Membership.Provider.ChangePassword("", "", "");

关于c# - ASP.Net 成员更改密码方法未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11544403/

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