Obecnie próbuję uwierzytelnić się za pośrednictwem usług Active Directory przy użyciu klasy PrincipalContext. Chciałbym, aby moja aplikacja była uwierzytelniana w domenie przy użyciu kontekstów Sealed i SSL. Aby to zrobić, muszę używać the following constructor of PrincipalContext (link to MSDN page):Usługi Active Directory: PrincipalContext - Jaka jest nazwa wyróżniająca obiektu "kontenerowego"?
public PrincipalContext(
ContextType contextType,
string name,
string container,
ContextOptions options
)
szczególności Używam konstruktora jako tak:
PrincipalContext domainContext = new PrincipalContext(
ContextType.Domain,
domain,
container,
ContextOptions.Sealing | ContextOptions.SecureSocketLayer);
MSDN mówi o "pojemnik":
Kontener w sklepie używany jako źródło kontekstu. Wszystkie zapytania są wykonywane pod tym korzeniem, a wszystkie wstawki są wykonywane w tym pojemniku . W przypadku typów kontekstowych aplikacjiDirectory , parametr ten jest wyróżniającą się nazwą DN ( ) obiektu kontenera.
Co to jest DN obiektu kontenerowego? Jak mogę się dowiedzieć, jaki jest mój obiekt kontenera? Czy mogę zapytać o to serwer Active Directory (lub LDAP)?
Twoje wyjaśnienie "tej dziwnej strony" było kluczem do naprawienia 20-sekundowego opóźnienia wywoływania 'ValidateCredentials'. Dzięki! –
Wiem, że to jest bardzo stare, ale badam, czy używać SSL zamiast podpisywania i natknąłem się na ten post. Wierzę, że możesz użyć 'null' w konstruktorze. Tak właśnie to robię, gdy chcę określić ContextOptions. Przykład: 'var pc = new PrincipalContext (ContextType.Domain, Environment.UserDomainName, null, ContextOptions.Sealing);' – famousKaneis
@Name: Myślę, że to właśnie pokazuje kod w ostatnim bloku kodu. (FWIW, ledwie pamiętam o co chodzi, ale pamiętajcie, że byli naprawdę szczęśliwi, kiedy to rozgryzłem.) :) – Pretzel