Этот код работает как шарм в контексте домена :
var user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, username);
Это также работает в машинном контексте , но это очень медленно (поиск пользователя среди двадцати занимает 13 секунд).
Но, во-первых, этот метод не учитывает регистр, что для меня просто необходимо.
Я нашел где-то альтернативный код для машинного контекста :
var context = new PrincipalContext(ContextType.Machine);
var user = new UserPrincipal(context)
{
SamAccountName = username
};
using (var searcher = new PrincipalSearcher(user))
{
user = searcher.FindOne() as UserPrincipal;
}
К сожалению, этот код чувствителен к регистру.
Может ли кто-нибудь предложить подход, который является быстрым как в машинном контексте, так и без учета регистра?