如何查找用户登录时的一个组
本文关键字:一个 用户 何查找 查找 登录 | 更新日期: 2023-09-27 18:10:39
我有以下代码显示用户登录的每个组:
protected void Page_Load(object sender, EventArgs e)
{
Groups();
}
public ArrayList Groups()
{
ArrayList groups = new ArrayList();
foreach (System.Security.Principal.IdentityReference group in
System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups)
{
groups.Add(group.Translate(typeof
(System.Security.Principal.NTAccount)).ToString());
}
for (int i = 0; i < groups.Count; i++)
{
MessageBox.Show(groups[i].ToString() + "");
}
return groups;
}
显示的组有:
BUILIN'Administrators
Everyone
IIS_Usrs
tmg'IT Members
tmg'Domain Users
如何查看用户是否只属于tmg'IT Members
组?
我尝试了以下操作,但失败了,因为某些组没有'
:
for (int i = 0; i < groups.Count; i++)
{
MessageBox.Show(groups[i].ToString() + "");
string t = groups[i].ToString().Split('''')[0];
string y = groups[i].ToString().Split('''')[1];
MessageBox.Show(t);
MessageBox.Show(y);
}
我想你想要的是:
for (int i = 0; i < groups.Count; i++){
if ( groups[i].ToString() == @"tmg'IT Members" )
{
... // true...
}
}
请尝试以下操作:
if (System.Web.HttpContext.Current.Request.LogonUserIdentity?.Groups?.Where(s => s.Translate(typeof(NTAccount)).ToString() == "tmg''IT Members").ToList().Count == 1)
{
}