2016-04-29 74 views
0

我需要一个所有角色的列表。 我已经看到,我可以通过域获取所有角色,或者通过用户获取所有角色。Sitecore获取所有角色

我以为我可以得到所有的域名,然后做一个循环来获取每个域名的所有角色。

但似乎你可以通过名字得到一个域名,我不能硬编码他们,因为会不时有新的。

那么,任何想法如何我可以得到所有的安全角色?名称作为一个字符串就足够了。

谢谢。

回答

4

您可以使用:

Roles.GetAllRoles() 

从命名空间Sitecore.Security.Accounts

如果你想从角色的所有用户可以使用:

IEnumerable<User> _roleUsers = Sitecore.Security.Accounts.RolesInRolesManager.GetUsersInRole(Role.FromName("Your role name"), true); 
+0

谢谢!我正在寻找Sitecore.Security命名空间,我忘记了System.Web.Security。我想你在谈论那个? – Bgl86

+1

Sitecore.Security.Accounts是命名空间,我更新了答案 –

+0

嗨,我正在使用Sitecore 7.2,并且我无法在Sitecore.Security.Accounts命名空间中找到该方法。 – Bgl86

0

接受的答案并不完全正确。 GetAllRoles()方法位于RolesInRolesManager类中。它可以被称为如下:

using Sitecore.Security.Accounts; 
... 
IEnumerable<Role> roleList = RolesInRolesManager.GetAllRoles();