C# ASP.Net成员身份更改密码方法未显示
我已经实现了一个自定义成员资格提供程序。下面是我的代码示例C# ASP.Net成员身份更改密码方法未显示,c#,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-membership,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Membership,我已经实现了一个自定义成员资格提供程序。下面是我的代码示例 public class CustomMembershipProvider : MembershipProvider { public override bool ChangePassword(string username, string oldPassword, string newPassword) { //logic for changing password } public overri
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.ChangePassword(username, oldPassword, newPassword);
它给我智能感知和编译错误,说System.Web.Security.Membership
不包含ChangePassword
的定义
如何将我的
ChangePassword
方法链接到可从System.Web.Security.Membership
调用,或者我是否以错误的方式处理此问题?请确保您的成员资格提供程序定义正确:
<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>
确保您的成员资格提供程序定义良好:
<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>
如果WebSecurity.ChangePassword中的任何参数为null,则如果WebSecurity.ChangePassword中的任何参数为null,则不会调用自定义Membership提供程序ChangePassword,它不会调用自定义Membership提供程序更改密码Visual Studio中的错误是“System.Web.Security.Membership”不包含“ChangePassword”的定义。我尝试了您的web.config更改以及整个解决方案的重建,但仍然没有显示。抱歉,我很快就开始更新了!我没有意识到我的部分答案没有发布。你答案中粗体部分解决了我的问题。谢谢Visual Studio中的错误是“System.Web.Security.Membership”不包含“ChangePassword”的定义。我尝试了您的web.config更改以及整个解决方案的重建,但仍然没有显示。抱歉,我很快就开始更新了!我没有意识到我的部分答案没有发布。你答案中粗体部分解决了我的问题。谢谢
var didChange = System.Web.Security.Membership.Provider.ChangePassword("", "", "");