Próbuję uzyskać informacje o użytkowniku dla określonej domeny, która będzie wprowadzeniem programu. Na podstawie nazwy domeny powinna zwracać listę nazw użytkowników/lub NT Id i SID użytkownika. Jestem nowy w programowaniu ldap, może ktoś mi pomoże uzyskać tę listę.Jak uzyskać nazwę użytkownika i identyfikator SID dla użytkownika według nazwy domeny w ldap
Odpowiedz
Jeśli używasz .NET 3.5 lub nowszej wersji i rozmawiasz o Active Directory, powinieneś sprawdzić przestrzeń nazw System.DirectoryServices.AccountManagement
(S.DS.AM). Przeczytać o tym tutaj:
- Managing Directory Security Principals in the .NET Framework 3.5
- MSDN docs on System.DirectoryServices.AccountManagement
Zasadniczo, można określić kontekst domeny i łatwo znaleźć użytkowników i/lub grupy w AD:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
if(user != null)
{
// do something here....
var usersSid = user.Sid;
// not sure what you mean by "username" - the "DisplayName" ? The "SAMAccountName"??
var username = user.DisplayName;
var userSamAccountName = user.SamAccountName;
}
nowy S.DS.AM ułatwia zabawę z użytkownikami i grupami w AD!
Aktualizacja: jeśli trzeba pętli wszystkich użytkowników domeny - spróbuj tego:
Można użyć PrincipalSearcher
i „query-przez-przykład” główny zrobić swoje poszukiwania:
// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// define a "query-by-example" principal - here, we search for a UserPrincipal
UserPrincipal qbeUser = new UserPrincipal(ctx);
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
// find all matches
foreach(var found in srch.FindAll())
{
UserPrincipal user = found as UserPrincipal;
if(user != null)
{
// do whatever here
var usersSid = user.Sid;
// not sure what you mean by "username" - the "DisplayName" ?
var username = user.DisplayName;
var userSamAccountName = user.SamAccountName;
}
}
Aktualizacja # 2: jeśli nie może (lub nie chcą) stosowanie metody S.DS.AM
- co jest najłatwiejsze, Active Directory, zdecydowanie - to trzeba by się znowu do System.DirectoryServices
klasy i metody:
// define the root of your search
DirectoryEntry root = new DirectoryEntry("LDAP://dc=YourCompany,dc=com");
// set up DirectorySearcher
DirectorySearcher srch = new DirectorySearcher(root);
srch.Filter = "(objectCategory=Person)";
srch.SearchScope = SearchScope.Subtree;
// define properties to load
srch.PropertiesToLoad.Add("objectSid");
srch.PropertiesToLoad.Add("displayName");
// search the directory
foreach(SearchResult result in srch.FindAll())
{
// grab the data - if present
if(result.Properties["objectSid"] != null && result.Properties["objectSid"].Count > 1)
{
var sid = result.Properties["objectSid"][0];
}
if(result.Properties["displayName"] != null && result.Properties["displayName"].Count > 0)
{
var userName = result.Properties["displayName"][0].ToString();
}
}
Cześć, Dzięki za odpowiedzi .. Ale w moim przypadku nie będę definiować żadnego użytkownika. Powinien to być pętla dla każdego użytkownika w domenie perticular .. – Eshwer
@Zamówiono: zaktualizowałem moją odpowiedź za pomocą pętli przez ** wszystkich ** użytkowników danej domeny - to ** BĘDZIE WOLNY **, jeśli masz wielu użytkowników. –
Cześć .. Ale gdzie jesteś podając adres URL ldap ..? lub nie jest wymagane? w tym przypadku skąd zajmie listę użytkowników? – Eshwer
- 1. Identyfikator użytkownika do nazwy użytkownika tweepy
- 2. Biorąc pod uwagę identyfikator SID użytkownika, jak uzyskać jego nazwę użytkownikaPrincipalName?
- 3. Konwersja nazwy użytkownika na ciąg SID w C#/.NET
- 4. Uwierzytelnianie użytkownika przy użyciu LDAP z PHP
- 5. getpwuid() zwraca NULL dla użytkownika LDAP
- 6. MVC3 + Jak uzyskać bieżącą zalogowaną nazwę użytkownika użytkownika
- 7. Jak uzyskać identyfikator użytkownika aktualnie zalogowanego użytkownika w Django?
- 8. Identyfikator użytkownika Tweepy z podanej nazwy
- 9. Zalogować się identyfikator użytkownika
- 10. Jak uzyskać nazwę użytkownika z java.sql.Connection?
- 11. Mapowanie Samby S-1-22- [12] - * Identyfikator SID na nazwy
- 12. Określenie domeny i nazwy użytkownika używanej do mapowania dysku sieciowego
- 13. Jak uzyskać nazwę użytkownika/wyświetlaną nazwę w BuddyPress?
- 14. Jak uzyskać aktualny identyfikator użytkownika Prestashop?
- 15. Jak uzyskać nazwę użytkownika Windows w Javie?
- 16. Uzyskaj identyfikator SID komputera (w tym podstawowy kontroler domeny)
- 17. jak uzyskać nazwę użytkownika Windows w WPF
- 18. .NET zwrócenie nieprawidłowej nazwy użytkownika
- 19. Jak uzyskać bieżącą nazwę użytkownika z Meteorem
- 20. Uzyskaj zalogowaną nazwę użytkownika systemu Windows skojarzoną z pulpitem
- 21. SharePoint uzyskać aktualną nazwę konta użytkownika?
- 22. Symfony2 uzyskać identyfikator użytkownika w repozytorium jednostek
- 23. Jak ustawić nazwę użytkownika i hasło phpmyadmin
- 24. Jak uzyskać nazwę domeny dla użytkownika zalogowanego na komputerze Mac za pośrednictwem usługi Active Directory?
- 25. Jak uzyskać nazwę użytkownika właściciela procesu?
- 26. Jak uzyskać nazwę domeny dla usługi w Angular2
- 27. Regex dopasować nazwę użytkownika
- 28. Jak uzyskać nazwę domeny NETBIOS przy użyciu nazwy FQDN w złożonym środowisku?
- 29. Jak uzyskać nazwę użytkownika w usłudze Active Directory z wyświetlanej nazwy w języku C#?
- 30. ASP.NET - Uzyskaj identyfikator główny/względny (RID) dla obiektu DirectoryEntry/SID
Kiedy mówisz * LDAP *, masz na myśli * * Active Directory w systemie Windows, czy trzeba „ogólnych” rozwiązanie LDAP dla wszystkich możliwych serwerów LDAP .... –