Odblokowanie konta w Active Directory

2014-04-16

W jednym z tworzonych przeze mnie systemów pojawiła się konieczność dodania funkcjonalności pozwalającej na odblokowywanie kont użytkowników w Active Directory (zablokowanych na skutek kilkukrotnego podania błędnego hasła). Standardowa procedura odblokowania konta to wejście do konsoli Active Directory i zaznaczenie odpowiedniej opcji w ustawieniach danego użytkownika:

ADUnlockAccount

Aby zrealizować to zadanie z poziomu kodu wystarczy skorzystać z klas PrincipalContext i UserPrincipal znajdujących się w przestrzeni System.DirectoryServices.AccountManagement:

string domain = "domain.com";
string container = "OU=Test,DC=domain,DC=com";
string accountName = "SC10006";

using (PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, domain, container))
{
	using (UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(principalContext, accountName))
	{
		if (userPrincipal != null)
		{
			userPrincipal.UnlockAccount();
			userPrincipal.Save();
		}
	}
}

Klasa PrincipalContext pozwala na połączenie z usługą Active Directory. W konstruktorze podajemy typ kontekstu (Machine, Domain, ApplicationDirectory) oraz opcjonalnie: nazwę dla wybranego typu kontekstu (w tym przypadku nazwę domeny), lokalizację szukanego obiektu (w tym przypadku OU, w którym znajduje się użytkownik) oraz dane uwierzytelniające. Jeżeli nie podamy tych ostatnich, operacja wykonana zostanie w kontekście bieżącego użytkownika (musi on więc posiadać do niej uprawnienia).
Klasa UserPrincipal odpowiada za odnalezienie użytkownika i wykonanie operacji odblokowania konta.

Więcej informacji na MSDN: System.DirectoryServices.AccountManagement, PrincipalContext, UserPrincipal.

Reklamy

Posted on 2014-04-16, in .NET/C# and tagged , , , . Bookmark the permalink. 2 Komentarze.

    • Podany przez Ciebie link opisuje klasę AuthenticablePrincipal, po której dziedziczy UserPrincipal. AuthenticablePrincipal nie posiada jednak metody FindByIdentity więc aby odnaleźć konto użytkownika konieczne jest użycie UserPrincipal.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

%d blogerów lubi to: