public partial class Nuevo : System.Web.UI.Page
{
(la linea de arriba solo es ejemplo donde debe poner el enum)
aquí esta el codigo del enum:
[Flags]
public enum AdsUserFlags
{
Script = 1, // 0x1
AccountDisabled = 2, // 0x2
HomeDirectoryRequired = 8, // 0x8
AccountLockedOut = 16, // 0x10
PasswordNotRequired = 32, // 0x20
PasswordCannotChange = 64, // 0x40
EncryptedTextPasswordAllowed = 128, // 0x80
TempDuplicateAccount = 256, // 0x100
NormalAccount = 512, // 0x200
InterDomainTrustAccount = 2048, // 0x800
WorkstationTrustAccount = 4096, // 0x1000
ServerTrustAccount = 8192, // 0x2000
PasswordDoesNotExpire = 65536, // 0x10000
MnsLogonAccount = 131072, // 0x20000
SmartCardRequired = 262144, // 0x40000
TrustedForDelegation = 524288, // 0x80000
AccountNotDelegated = 1048576, // 0x100000
UseDesKeyOnly = 2097152, // 0x200000
DontRequirePreauth = 4194304, // 0x400000
PasswordExpired = 8388608, // 0x800000
TrustedToAuthenticateForDelegation = 16777216, // 0x1000000
NoAuthDataRequired = 33554432, // 0x2000000
Habilitarcuenta = 512 // 0x2000000
}
Otra cosa hay que crear una OU(unidad organizacional) llamada usuarios, ya que aquí estaran nuestros usuarios.
Aquí esta el código de ingreso de usuario:
DirectoryEntry parent = new DirectoryEntry(
"LDAP://OU=usuarios,DC=test,DC=corp",
null,
null,
AuthenticationTypes.Secure
);
DirectoryEntry user =
parent.Children.Add("CN=test.user", "user");
using (user)
{
user.Properties["sAMAccountName"].Value = "test.user";
user.Properties["userPrincipalName"].Value = "test.user";
user.Properties["displayName"].Value = "nombre completo";
user.Properties["givenName"].Value = "Nombre";
user.Properties["sn"].Value = "apellidos";
user.Properties["description"].Value = "usuario creado automaticamente";
user.CommitChanges();
}
Esta cuenta no esta lista para usarla ya que hay que colocarle un password:
DirectoryEntry ent = new DirectoryEntry("LDAP://CN=test.user,OU=usuarios,DC=test,DC=corp");
ent.Properties["pwdLastSet"].Value = 0;
ent.Invoke("SetPassword", new object[] { "3l!teP@$$w0RDz" });
y aun no esta lista para usarla ya que falta habilitar la cuenta.
DirectoryEntry entry = new DirectoryEntry("LDAP://CN=test.user,OU=usuarios,DC=test,DC=corp");
AdsUserFlags newValue = AdsUserFlags.NormalAccount
| AdsUserFlags.PasswordDoesNotExpire
| AdsUserFlags.Habilitarcuenta;
entry.Properties["userAccountControl"].Value = newValue;
entry.CommitChanges();
Con esto ya tendran listo su Usuario de Active directory.
Recomendaciones & Tips.
Corran esto en el servidor no es su pc ya que si no estan pegados al dominio pueden tener problemas.
Colocar el identity si van usar anonimos:
Por ultimo si da un error que el objeto no es existe es por que estan buscando el usuario en la OU equivocada.
Espero les sirva.
No hay comentarios.:
Publicar un comentario
Gracias por sus comentarios.
Carlos Juan