【问题标题】:Umbraco 7 Custom Membership Provider use both Umbraco Users and external MembersUmbraco 7 Custom Membership Provider 同时使用 Umbraco 用户和外部成员
【发布时间】:2014-06-29 02:51:06
【问题描述】:

我如何在Umbraco 7 中使用使用BackOffice 的内部用户和角色以及我的自定义用户和角色(来自外部SQL database。 我希望使用 umbraco 用户按原样登录 umbraco 后台,并且单独登录希望使用外部用户。我已经更改了 web.config

<add name="mynewMembershipProvider" type="mynewMembershipProvider, mynew" <add name="mynewrovider" type="mynewrsRoleProvider"/>

当我现在进入我的自定义登录时,我可以登录我的自定义用户。但是当我尝试时

User.Identity.IsAuthenticated

User.IsInRole("xyz") umbraco 一直在关注 umbraco 的角色。

我做错了什么 最好的问候迈克尔

【问题讨论】:

    标签: umbraco umbraco7 membership user-roles


    【解决方案1】:

    如果我理解正确,您将按原样离开 CMS 和后台办公室用户,并且您希望允许会员在您网站的面向公众的一侧登录使用自定义提供程序?

    您是否将默认提供商设置为新的会员提供商?

    <membership defaultProvider="mynewMembershipProvider">
    ...
    </membership>
    

    成员部分中的默认提供者应始终指向用于面向公众的成员的提供者 - 后台每次需要进行身份验证时都会内部要求UsersMembershipProvider,因此更改默认完全不会影响它。

    根据您的设置(我没有尝试过),如果您没有包含 &lt;clear/&gt; 指令,那么原始 Umbraco 成员提供程序也可能会导致问题。

    这是一个完整的工作 &lt;membership&gt; 部分,使用来自我的 Umbraco 7 安装的自定义 BCrypt 哈希提供程序:

    <membership defaultProvider="BCryptMembershipProvider" userIsOnlineTimeWindow="15">
        <providers>
            <clear />
            <add 
                name="BCryptMembershipProvider" 
                type="cFront.Web.Security.BCryptMembershipProvider" 
                connectionStringName="umbracoDbDSN" 
                requiresUniqueEmail="0"
            />
            <add name="UsersMembershipProvider" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" passwordFormat="Hashed" />
        </providers>
    </membership>
    <roleManager enabled="true" defaultProvider="BCryptRoleProvider">
        <providers>
            <clear />
            <add name="BCryptRoleProvider" type="cFront.Web.Security.BCryptRoleProvider" 
                connectionStringName="umbracoDbDSN" 
                availableRoles="SuperUser,Administrator,Manager,User"
            />
        </providers>
    </roleManager>
    

    【讨论】:

    • 我发现只需通过 web.config 设置拒绝用户 ="?" 调用登录将成员和用户路由到同一个登录表单;所以标准的 Umbraco 登录不再出现。此外,当 Membership 提供程序具有 ValidateUser 之类的方法时,它有点令人困惑。
    猜你喜欢
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多