Umbraco 覆盖或扩展默认成员资格提供者

标签 umbraco

我想在 Umbraco 6.1.6 中使用不同的提供程序,例如我有这个

    <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);
    }
}

但问题是,如果我这样做,“成员”选项卡不会加载。

最佳答案

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"/>

关于Umbraco 覆盖或扩展默认成员资格提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22705072/

相关文章:

c#-4.0 - 在 umbraco 中创建文件夹 - Umbraco 7

c# - 检查树结构中的每个节点,Umbraco(提高效率)

javascript - 使下拉菜单可见的javascript

c# - asp.net 的轻量级搜索引擎

.net - Umbraco 与 DotNetNuke : can't decide which one is more suitable

c# - 为什么我不能在我自己的类中访问 UmbracoHelper

c# - 使用第三方对象实例化测试代码

asp.net - 在Ajax Web服务中使用Umbraco Node工厂

c# - 一个umbraco 上的多个网站,需要xslt 宏吗?