我使用此代碼來獲取當前用戶的組。但是我想手動給用戶,然后得到他的組。我怎樣才能做到這一點?using System.Security.Principal;public ArrayList Groups(){ ArrayList groups = new ArrayList(); foreach (IdentityReference group in System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups) { groups.Add(group.Translate(typeof(NTAccount)).ToString()); } return groups;}
3 回答

慕仙森
TA貢獻1827條經(jīng)驗 獲得超8個贊
GetAuthorizationGroups()找不到嵌套的組。要真正獲得給定用戶所屬的所有組(包括嵌套組),請嘗試以下操作:
using System.Security.Principal
private List<string> GetGroups(string userName)
{
List<string> result = new List<string>();
WindowsIdentity wi = new WindowsIdentity(userName);
foreach (IdentityReference group in wi.Groups)
{
try
{
result.Add(group.Translate(typeof(NTAccount)).ToString());
}
catch (Exception ex) { }
}
result.Sort();
return result;
}
我try/catch之所以使用,是因為在一個非常大的廣告中,我在200個組中有2個例外,因為有些SID不再可用。(該Translate()調用執(zhí)行SID->名稱轉換。)
- 3 回答
- 0 關注
- 803 瀏覽
添加回答
舉報
0/150
提交
取消