none
COMException DirectoryEntry.CommitChanges() RRS feed

  • Pregunta

  • Buenas

    Llevo ya varios dias dandole vueltas a como usar este codigo en un proyecto asp.net MVC3 en windows server 2008 R2:

                    DirectoryEntry obUser = entries.Add("CN=" + username, "User");
                    obUser.Properties["saMAccountName"].Add(username);
                    obUser.Invoke("SetPassword", password);
                    obUser.Invoke("Put", new object[] { "UserFlags", 0x10000 });
                    obUser.CommitChanges();

    antes de esto hay un fragmento de codigo que devuelve un objeto entries de la clase DirectoryEntries que funciona perfectamente

    El problema que tengo es que me da un COMException al ejecutar el metodo CommitChanges().

    he probado a buscar por internet pero nada, no encuentro nada. Antes de esto me daba un error de permisos pero lo solucione delegando permisos de Active directory sobre el grupo IIS_USR


    • Editado proilime viernes, 27 de julio de 2012 10:46
    viernes, 27 de julio de 2012 10:42

Respuestas

  • Según mi PC Windows 7 64-bit, ese número de error corresponde al mensaje "An internal error occurred.", que ciertamente tampoco dice mucho, jeje.

    Se me ocurre que tal vez usted esté utilizando el proveedor LDAP: y por lo tanto necesita usted primero hacer un CommitChanges() antes de poder asignar una contraseña según se explica en http://msdn.microsoft.com/en-us/library/windows/desktop/aa746344(v=vs.85).aspx.  Si este es el caso en lo personal creo que me movería al proveedor WinNT que sí permite la asignación de la contraseña antes de crear el objeto, o bien tal vez le sirva algo de http://stackoverflow.com/questions/1298449/create-active-directory-user-in-net-c.

    Como consejo:  Su problema no está relacionado a ASP.net ni a MVC o Razor.  Su problema es de Active Directory en C#.  Escoger el foro correcto tiene un impacto importante a la hora de solicitar la ayuda.  Por ejemplo, un foro más apropiado sería el de Lenguaje C#, pues este código podría perfectamente incluirse en una aplicación Windows Forms o WPF sin problemas.  En este caso usted se limitó a expertos en MVC y ASP.net para tratar de resolver un problema de C# o Active Directory.


    Jose R. MCP
    Code Samples



    • Editado webJose viernes, 10 de agosto de 2012 7:05
    • Marcado como respuesta Eder Costa jueves, 8 de noviembre de 2012 13:30
    viernes, 10 de agosto de 2012 6:53

Todas las respuestas

  • Buf...

    Ayudaría tener más info sobre la COMException que te da... Mensaje, HResult, InnerException si la hubiese y demás. Si no, a saber que puede ser... :)


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    viernes, 27 de julio de 2012 16:51
  • el mensaje que da es: Error interno.

    el codigo de error es : (0x8007054f)

    y el inner exception es = null

    lunes, 30 de julio de 2012 9:09
  • Pues la verdad... No dice mucho... :(

    Revisa que no sea algo de permisos (aunque dices que ya lo miraste).

    Suerte!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    miércoles, 1 de agosto de 2012 7:20
  • Según mi PC Windows 7 64-bit, ese número de error corresponde al mensaje "An internal error occurred.", que ciertamente tampoco dice mucho, jeje.

    Se me ocurre que tal vez usted esté utilizando el proveedor LDAP: y por lo tanto necesita usted primero hacer un CommitChanges() antes de poder asignar una contraseña según se explica en http://msdn.microsoft.com/en-us/library/windows/desktop/aa746344(v=vs.85).aspx.  Si este es el caso en lo personal creo que me movería al proveedor WinNT que sí permite la asignación de la contraseña antes de crear el objeto, o bien tal vez le sirva algo de http://stackoverflow.com/questions/1298449/create-active-directory-user-in-net-c.

    Como consejo:  Su problema no está relacionado a ASP.net ni a MVC o Razor.  Su problema es de Active Directory en C#.  Escoger el foro correcto tiene un impacto importante a la hora de solicitar la ayuda.  Por ejemplo, un foro más apropiado sería el de Lenguaje C#, pues este código podría perfectamente incluirse en una aplicación Windows Forms o WPF sin problemas.  En este caso usted se limitó a expertos en MVC y ASP.net para tratar de resolver un problema de C# o Active Directory.


    Jose R. MCP
    Code Samples



    • Editado webJose viernes, 10 de agosto de 2012 7:05
    • Marcado como respuesta Eder Costa jueves, 8 de noviembre de 2012 13:30
    viernes, 10 de agosto de 2012 6:53