Umbraco 7 Custom Membership Provider使用Umbraco用户和外部会员

时间:2014-05-11 19:55:23

标签: umbraco umbraco7 membership user-roles

我如何在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角色。

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

1 个答案:

答案 0 :(得分:4)

如果我理解正确,您将离开CMS并返回办公室用户,并且您希望允许会员在您网站的公众面前登录使用自定义提供商?

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

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

成员资格部分中的默认提供程序应始终指向用于面向公众的成员的提供程序 - 后台每次需要进行身份验证时都会询问UsersMembershipProvider,因此更改默认值根本不会影响它。

根据您的设置(我还没有尝试过),如果您没有包含<clear/>指令,那么原来的Umbraco成员提供商会导致问题。

以下是使用来自我的Umbraco 7安装的自定义BCrypt哈希提供程序的完整工作<membership>部分:

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