我想重设用户密码。我有一个类似以下代码的方法。 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)
{
}
检查您的会员资格是否真的在使用它。