我想重设用户密码。我有一个类似以下代码的方法。 EnablePasswordReset不会覆盖,因为它是抽象的。我已经更改了web.config。但是仍然会出错:


  未启用密码重置。设置的EnablePasswordReset属性
  成员资格提供者为true。


如何EnablePasswordReset值设置true

  public static string ResetCurrentUserPassword(string userName)
  {
      MembershipProvider p = (MembershipProvider)Membership.Providers["Default"];
      //p.EnablePasswordReset value false;
      MembershipUser obj = Membership.GetUser(userName);

      return obj.ResetPassword();
  }


web.config

        <siteMap defaultProvider="SitefinitySiteMap">
            <providers>
                <add name="SitefinitySiteMap" type="Telerik.Sitefinity.Web.SitefinitySiteMap, Telerik.Sitefinity" enablePasswordReset="true" taxonomyProvider="OpenAccessDataProvider" pageTaxonomy="Pages" rootNode="FrontendSiteMap" pageProvider="OpenAccessDataProvider"/>
            </providers>
        </siteMap>
        <roleManager enabled="false"/>
        <membership defaultProvider="Default">
            <providers>
                <clear/>
                <add name="Default" type="Telerik.Sitefinity.Security.Data.SitefinityMembershipProvider, Telerik.Sitefinity" enablePasswordReset="true"/>
            </providers>
        </membership>

最佳答案

设置在您的web.config文件中;

enablePasswordReset="true"


查看MSDN示例;

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
  <providers>
    <add name="SqlProvider"
      type="System.Web.Security.SqlMembershipProvider"
      connectionStringName="SqlServices"
      enablePasswordRetrieval="false"
      enablePasswordReset="true"
      requiresQuestionAndAnswer="true"
      passwordFormat="Hashed"
      applicationName="MyApplication" />
  </providers>
</membership>


您说过,您之前做过,请像下面这样检查代码;

if (!Membership.EnablePasswordReset)
{

}


检查您的会员资格是否真的在使用它。

08-17 09:35