Вы ищете определенного пользователя или всех пользователей?
У меня есть приложение, которое проверяет, присутствует ли пользователь, проверяя имя учетной записи - оно использует SecurityIdentifier
в пространстве имен System.Security.Principal
дляпроверьте, действителен ли SID.
public bool AccountExists(string name)
{
bool SidExists = false;
try
{
NTAccount Acct = new NTAccount(name);
SecurityIdentifier id = (SecurityIdentifier)Acct.Translate(typeof(SecurityIdentifier));
SidExists = id.IsAccountSid();
}
catch (IdentityNotMappedException)
{
//Oh snap.
}
return SidExists;
}
Вы можете указать Домен при создании NTAccount
объекта
NTAccount Acct = new NTAccount("SampleDomain", "SampleName");
РЕДАКТИРОВАТЬ
Что касается вашего комментария, будет ли это работать для вас?Не проверял, возможно, придется обработать возможный нулевой возврат, прежде чем эмулировать метод IsAccountSid()
...
public SecurityIdentifier AccountSID(string myDomain, string myAcct)
{
SecurityIdentifier id;
try
{
NTAccount Acct = new NTAccount(myDomain, myAcct);
id = (SecurityIdentifier)Acct.Translate(typeof(SecurityIdentifier));
}
catch (IdentityNotMappedException)
{
//Oh snap.
}
return id;
}
SecurityIdentifier AcctSID = AccountSID("ExampleDomain", "ExampleName");
if (AcctSID.IsAccountSid())
//Do Something