usuario quitar puede permisos net guardar expiro expirada denegado cuenta contraseña cambios cambiar administrador acceso winforms active-directory access-denied citrix change-password

winforms - puede - quitar contraseña de administrador



Acceso denegado al intentar cambiar la contraseña de c# (1)

Escribí una herramienta que permite a los usuarios cambiar su contraseña de AD. Esta herramienta funciona sin problemas en el dominio de mi empresa, pero cuando la ejecuto en nuestra máquina de clientes con citrix recibo el siguiente mensaje de error:

System.Reflection.TargetInvocationException: la excepción ha sido lanzada por el objetivo de una invocación. ---> System.UnauthorizedAccessException: Acceso denegado. (Excepción de HRESULT: 0x80070005 (E_ACCESSDENIED)) --- Fin de la pila de excepción interna trace --- en System.DirectoryServices.DirectoryEntry.Invoke (String methodName, Object [] args) en System.DirectoryServices.AccountManagement.SDSUtils.ChangePassword ( DirectoryEntry de, String oldPassword, String newPassword) en System.DirectoryServices.AccountManagement.ADStoreCtx.ChangePassword (AuthenticablePrincipal p, String oldPassword, String newPassword) en CitrixPWChangeBackend.ActiveDirectory.ChangePasswordForCurrentUser (String oldPw, String newPw, Boolean & errorWrongPw, Boolean & errorPasswordRules, String & errorMessage )

La línea que causa ese error es:

UserPrincipal.Current.ChangePassword(oldPw, newPw);

"oldPW" es correcto, por supuesto


El motivo "mágico" era una política para ese usuario que causaba que la propiedad "UserCannotChangePassword" fuera verdadera. Sin problema específico de Citrix.