2013-02-18 36 views
1

我想重置用戶密碼。我有一個像下面的代碼的方法。 EnablePasswordReset不會被覆蓋,因爲它是抽象的。我已經改變了web.config。但仍然出錯:成員中的EnablePasswordReset

密碼重置未啓用。將成員資格提供程序的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> 

回答

1

設置您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) 
{ 

} 

檢查您的會員資格是否真的使用它。

+0

我已經這樣做了。 – baros 2013-02-18 09:20:10

+0

@baros檢查我更新的答案。 – 2013-02-18 09:24:05

+0

我寫了一個像你說的控件,但EnablePasswordReset值仍然是false。我改變了web.config,它在上面。但還是一樣。我重新設置了web.config。 – baros 2013-02-18 09:25:03