У меня был этот код:
var context = new PrincipalContext( ContextType.Machine );
var user = UserPrincipal.FindByIdentity( context, username );
и потребовалось около 2-3 секунд для запуска. Мне было рекомендовано переписать его с помощью класса PrincipalSearcher
:
var context = new PrincipalContext( ContextType.Machine );
var user = new UserPrincipal(context);
user.SamAccountName = username;
var searcher = new PrincipalSearcher(user);
user = searcher.FindOne() as UserPrincipal;
и работает менее чем за одну секунду - особенно быстрее. Человек, который посоветовал переписать, так же бессловен, как и я, почему он работает быстрее.
Почему это делает разницу в производительности?