Umbraco覆盖或扩展默认成员资格提供程序
我想使用Umbraco 6.1.6中的其他提供商,例如,我有这个Umbraco覆盖或扩展默认成员资格提供程序,umbraco,Umbraco,我想使用Umbraco 6.1.6中的其他提供商,例如,我有这个 <membership defaultProvider="UmbracoMembershipProvider" userIsOnlineTimeWindow="15"> <providers> <clear /> <add name="UmbracoMembershipProvider" type="umbraco.providers.membe
<membership defaultProvider="UmbracoMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add name="UmbracoMembershipProvider" type="umbraco.providers.members.UmbracoMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Website" passwordFormat="Hashed" umbracoApprovePropertyTypeAlias="isActive" umbracoLastLoginPropertyTypeAlias="loginDate" />
<add name="UsersMembershipProvider" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" />
</providers>
</membership>
但我想用这个
<membership defaultProvider="TechBureauMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear/>
<add name="TechBureauMembershipProvider" type="TechBureau.Web.providers.TechBureauMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Website" passwordFormat="Hashed" umbracoApprovePropertyTypeAlias="isActive" umbracoLastLoginPropertyTypeAlias="loginDate"/>
<add name="UsersMembershipProvider" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false"/>
</providers>
</membership>
因为我想覆盖ResetPassword密码函数,不做任何事情
public class TechBureauMembershipProvider : UmbracoMembershipProvider
{
/// <summary>
/// Overriding this so that it does nothing, reseting a password to a random password isn't cool for anyone.
/// </summary>
/// <param name="username"></param>
/// <param name="answer"></param>
/// <returns></returns>
public override string ResetPassword(string username, string answer)
{
return string.Empty; //base.ResetPassword(username, answer);
}
}
公共类TechBureauMembershipProvider:UmbracoMembershipProvider
{
///
///将密码重置为随机密码对任何人来说都不酷。
///
///
///
///
公共重写字符串重置密码(字符串用户名、字符串应答)
{
返回string.Empty;//base.ResetPassword(用户名、答案);
}
}
但问题是,如果我这样做,则不会加载“成员”选项卡。我认为“umbraco.cms\businesslogic\member\member.cs”文件将提供者名称硬编码为:
public静态只读字符串UmbracoMemberProviderName=“UmbracoMembershipProvider”代码>
因此,您可能必须使用反射覆盖函数。David的方法是正确的,但我认为这里不需要反射覆盖。
更改UmbracoMembershipProvider的类型,但名称保持不变
<membership defaultProvider="TechBureauMembershipProvider" userIsOnlineTimeWindow="2880">
<providers>
<clear/>
<add name="UmbracoMembershipProvider" type="TechBureau.Web.providers.TechBureauMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Member" passwordFormat="Hashed"/>
<add name="UsersMembershipProvider" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" passwordFormat="Hashed"/>
啊,对了,现在这很有道理,我会试试看,谢谢!不,请看另一个答案,请保持相同的名称。