viernes, 5 de marzo de 2010

Agregar usuario en Active Directory desde .net (C# Framework 3.5)

using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;

public string AgregarUsuario(string pUsuario,
string Nombre,
string Apellido,
string PasswordEncriptado,
string email,
bool forzarCambioClave,
bool ClaveNoExpira,
bool UsuarioHabilitado)
{
try
{
string[] arrTokens = _domainName.Split(new char[] { '.' }, 100, StringSplitOptions.None);
string LDAPDomainPath = this._ouName + ",DC=" + string.Join(",DC=", arrTokens);

//Contexto del active directory (Raíz)
PrincipalContext insPrincipalContext = new PrincipalContext(ContextType.Domain, this._serverName + "." + this._domainName, LDAPDomainPath, "UsuarioConPrivilegiosEnElAD", "ClaveDelMismo");//"domainController.Dominio.com" "Dominio.com","DC=dominio,DC=com"

//Creamos el nuevo usuario


UserPrincipal user = new UserPrincipal(insPrincipalContext, pUsuario.Trim(), PasswordEncriptado, UsuarioHabilitado);

//Nombre de la entidad de seguridad
user.GivenName = Nombre.Trim();
user.DisplayName = Nombre.Trim();

//Apellido del Usuario
user.Surname = (Apellido == "") ? Nombre.Trim() : Apellido.Trim();

//Usuario @ Dominio
user.UserPrincipalName = pUsuario.Trim().ToLower() + "@" + _domainName;

if (Cedula.Length < 20)
user.SamAccountName = Cedula.Trim().ToLower();
else
user.SamAccountName = Cedula.Trim().Substring(0, 20).ToLower();

//Seteamos el correo
if (email.Trim() != "")
user.EmailAddress = email;

//force the user to change password at next logon
if (forzarCambioClave)
user.ExpirePasswordNow();

//El password no expira
if (ClaveNoExpira)
user.PasswordNeverExpires = true;

//save the user to the directory
user.Save();


return "true,Usuario incluido satisfactoriamente";
}
catch (Exception ex)
{
return "false," + ex.Message;
}


}

No hay comentarios:

Publicar un comentario

 
Locations of visitors to this page