C# 自定义成员资格提供程序的Sitefinity权限

C# 自定义成员资格提供程序的Sitefinity权限,c#,asp.net,sitefinity,C#,Asp.net,Sitefinity,我正在尝试为Sitefinity实现自定义成员资格提供程序。到目前为止,实际的成员身份验证(身份验证、用户列表等)工作正常。我想做的是为登录该提供商的任何人设置站点内的权限。例如,假设自定义提供程序名为CustomerDBMembershipProvider,并假设它从某种单独的用户名和密码存储库中获取记录 我希望使用CustomerDBMembershipProvider登录的任何人都可以访问该网站上的客户专用页面。如何限制该页面,使其只能被使用CustomerDBMembershipProv

我正在尝试为Sitefinity实现自定义成员资格提供程序。到目前为止,实际的成员身份验证(身份验证、用户列表等)工作正常。我想做的是为登录该提供商的任何人设置站点内的权限。例如,假设自定义提供程序名为
CustomerDBMembershipProvider
,并假设它从某种单独的用户名和密码存储库中获取记录


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

首先,我希望我正确理解了您的问题。我可以考虑两种选择

选项1

  • 创建自定义角色提供程序,实现GetAllRoles、RoleExists、IsUserInRole、GetRolesForUser。使用throw new NotSupportedException()保留所有可以保留的空方法; 在此角色提供程序中,您可以从自定义用户源获取每个用户的角色列表。如果没有自定义角色数据库,则可以硬编码为此角色提供程序拥有一个固定角色

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

  • 现在,您应该可以在页面权限管理器中看到其他角色。现在,您只能为受限页面提供对此角色的访问权限

  • 选项2。

  • 在sitefinity中创建新角色
  • 为角色分配用户。在提供者下拉列表中,选择提供者CustomerDBMembershipProvider。将所有用户分配到此角色
  • 更改所需页面的权限以仅允许此新角色 使用这种方法,无论何时向自定义源添加新用户,都需要将其映射到在sitefinity中创建的新角色。如果可以更改成员资格提供程序,则在验证用户后,可以在ValidateUser函数中向用户添加新创建的sitefinity角色。这样,您就不需要在每次创建新用户时手动映射sitefinitiy中的角色