Kullanıcı adı ve etki alanı temel alınarak bir kullanıcının tam adını alan bir işlev var. Bu işlev, kimliğine bürünmemiş bir kullanıcının altında ASP.NET iş parçacığında çalışır. Uzak bir AD dalında Dizin arama aracını kullandığımda, özellik yerine SID numarasını aldığımı sanıyorum (farklı bir kutuda gerçekleştiğini doğrulayamıyor).Active Directory aramada geç bağlama sorunlarını nasıl giderebilirim
public string GetUserFullName(string userName, string domainName)
{
DirectoryEntry rootEntry = new DirectoryEntry("GC://dc=company,dc=net");
string filter = string.Format("(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(userPrincipalName={0}@{1}.company.net))", userName, domainName);
DirectorySearcher searcher = new DirectorySearcher(rootEntry, filter, new string[] { "displayName" });
rootEntry.AuthenticationType = AuthenticationTypes.Secure;
searcher.PageSize = 1000;
searcher.ServerTimeLimit = new TimeSpan(0, 10, 0);
searcher.ReferralChasing = ReferralChasingOption.All;
searcher.Asynchronous = false;
SearchResult result = searcher.FindOne();
if (result != null)
{
return (string) result.Properties["displayName"][0];
}
else
{
throw new Exception("Active Directory could not resolve your user name");
}
}
NET 2.0. Bunu işaretlediğiniz için teşekkürler! Adrian –