2014-06-23 347 views
0

我正在尝试为Sitefinity实现自定义会员供应商。到目前为止,实际的会员资格(认证,列出用户等)工作正常。我想要做的就是在网站上设置任何登录该提供者的权限。例如,可以说自定义提供程序被称为CustomerDBMembershipProvider,并假设它从某种单独的用户名和密码存储库中获取记录。自定义会员供应商的Sitefinity权限

我希望任何使用CustomerDBMembershipProvider登录的人都可以访问该站点上的客户专用页面。如何限制该页面,以便只有使用CustomerDBMembershipProvider登录的用户才能看到该页面?

回答

0

首先,我希望我能理解你的问题。我能想到这里

选项1

  1. 两个选项创建自定义角色提供,实现GetAllRoles,RoleExists,必须isUserInRole,GetRolesForUser。保留所有可以保留的空方法,抛出new NotSupportedException(); 在此角色提供者中,您可以从您的自定义用户源获取每个用户的角色列表。如果您没有自定义角色数据库,那么您可以硬编码为该角色提供者拥有一个固定角色。

  2. 在web.config中将此自定义角色提供程序与sitefinity集成。

  3. 现在您应该在页面权限管理器中看到其他角色。您现在可以仅限访问限制页面的此角色。

选项2

  1. 在sitefinity创建新角色
  2. 将用户分配了角色。在提供者下拉列表中选择您的提供者CustomerDBMembershipProvider。将所有用户分配给此角色。
  3. 更改所需页面的权限以仅允许此新角色。

使用此方法,无论何时将新用户添加到自定义源中,都需要将它们映射到在sitefinity中创建的新角色。如果您可以更改您的成员资格提供程序,那么在ValidateUser函数中,在对用户进行验证后,您可以将新创建​​的sitefinity角色添加到用户。然后,每次创建新用户时,您都不需要手动在sitefinitiy中映射角色。