Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net成员身份更改密码方法未显示_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Asp.net Membership - Fatal编程技术网

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("", "", "");