У меня был этот код:
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;
и он работает менее чем за одну секунду -заметно быстрее. Человек, который посоветовал переписать, так же невежественен, как и я, почему он работает быстрее.
Почему это влияет на производительность?