找到了一种方法(IAzRole 接口,感谢 Bermo),循环遍历每个角色的 MembersName 属性。无需映射回windows帐户,除非您需要获取的不仅仅是用户名。
设置角色,详见文章:如何:将授权管理器 (AzMan) 与 ASP.NET 2.0 一起使用
在 Visual Studio 项目中添加对 AzMan COM 库(azroles 1.0 类型库)的引用。然后添加using AZROLESLib;
. 添加<form id="form1" runat="server">
,然后在 Page_Load 中:
AzAuthorizationStoreClass AzManStore = new AzAuthorizationStoreClass();
string connString = ConfigurationManager.ConnectionStrings["AuthorizationServices"].ConnectionString;
string path = Server.MapPath(connString.Substring("msxml://".Length));
AzManStore.Initialize(0, "msxml://" + path, null);
IAzApplication azApp = AzManStore.OpenApplication("AppName", null);
PlaceHolder p = new PlaceHolder();
StringBuilder sb = new StringBuilder();
sb.Append("<ul>");
foreach (IAzRole role in azApp.Roles)
{
sb.Append("<li>");
sb.Append(role.Name);
sb.Append("<ul>");
foreach (object member in (object[])role.MembersName)
{
sb.Append("<li>");
sb.Append(member);
sb.Append("</li>");
}
sb.Append("</ul>");
sb.Append("</li>");
}
sb.Append("</ul>");
p.Controls.Add(new LiteralControl(sb.ToString()));
form1.Controls.Add(p);
这将显示每个角色中的角色和成员列表。