在Sitefinity中,具有自定义角色提供者的提供者能力是什么

时间:2018-06-20 20:01:49

标签: sitefinity roleprovider

我正在尝试在站点限制中实现自定义角色提供程序。我找到了一些示例,但找不到任何记载得很好的示例。我想进一步了解的一件事是“提供者能力”数组中提供了哪些选项。

我从git hub看到了一个列出了其中一些示例的示例,但是还有什么可用的示例呢?我要创建的提供程序将是只读提供程序,因此我想知道我还能在其中添加什么并将其标​​记为不支持或不允许。

还有哪些其他选项?

example from git hub

1 个答案:

答案 0 :(得分:1)

您使用它来基本上说出提供商所支持的操作。

内置的OpenAccessRoleProvider提供程序(使用数据库存储角色的提供程序)支持您附加的所有那些操作(添加/删除/获取角色,分配/取消分配用户角色),但是LdapRoleProvider可以执行不支持DeleteRole功能(请注意其第二个和第三个参数是错误的):

LdapRoleProvider:

public override ProviderAbilities Abilities
    {
        get
        {
            ProviderAbilities providerAbility = new ProviderAbilities()
            {
                ProviderName = this.Name,
                ProviderType = base.GetType().FullName
            };
            providerAbility.AddAbility("GetRole", true, true);
            providerAbility.AddAbility("AddRole", false, false);
            providerAbility.AddAbility("AssingUserToRole", false, false);
            providerAbility.AddAbility("UnAssingUserFromRole", false, false);
            providerAbility.AddAbility("DeleteRole", false, false);
            return providerAbility;
        }
    }

public void AddAbility(string operationName, bool supported, bool allowed) {...}

这很正常-例如,您不能从Sitefinity中删除Active Directory中的角色。