Sitefinity 中自定义角色提供者的提供者能力是什么
what are Provider Abilities with Custom Role Providers in Sitefinity
我正在尝试在 sitefinity 中实现自定义角色提供程序。我找到了一些例子,但找不到任何记录得很好的例子。我想进一步了解的一件事是 Provider Abilities 数组中有哪些可用选项。
我在 git 中心看到了一个例子,其中列出了其中的一些,但还有什么可以放在那里?我正在创建的提供程序将是一个只读提供程序,因此我想知道我还可以在其中放入什么并将其标记为不受支持或不允许。
还有哪些其他选项可用?
example from git hub
您使用它来基本上说明您的提供商支持哪些操作。
内置的 OpenAccessRoleProvider 提供程序(使用数据库存储角色的提供程序)支持您附加的所有这些操作(add/remove/get 角色,assign/unassign 用户到角色),但是 LdapRoleProvider例如,不支持 DeleteRole 能力(注意它的第二个和第三个参数是 false):
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 中的角色。
我正在尝试在 sitefinity 中实现自定义角色提供程序。我找到了一些例子,但找不到任何记录得很好的例子。我想进一步了解的一件事是 Provider Abilities 数组中有哪些可用选项。
我在 git 中心看到了一个例子,其中列出了其中的一些,但还有什么可以放在那里?我正在创建的提供程序将是一个只读提供程序,因此我想知道我还可以在其中放入什么并将其标记为不受支持或不允许。
还有哪些其他选项可用?
example from git hub
您使用它来基本上说明您的提供商支持哪些操作。
内置的 OpenAccessRoleProvider 提供程序(使用数据库存储角色的提供程序)支持您附加的所有这些操作(add/remove/get 角色,assign/unassign 用户到角色),但是 LdapRoleProvider例如,不支持 DeleteRole 能力(注意它的第二个和第三个参数是 false):
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 中的角色。