salve ragazzi avrei un problema con il cambio password per gli utenti in dominio su active directory, il problema è che l'errore che mi restituisce in fase di debug è parecchio criptico per me ovvero:
codice:
System.Runtime.InteropServices.COMException (0x80020006): Nome sconosciuto. (Eccezione da HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))
l'errore mi viene dato sulla linea in cui c'è l'istruzione per il cambio password, di seguito vi allego il codice spero riusciate ad aiutarmi
codice:
using System;
using System.Text;
using System.IO;
using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;
namespace PasswordChange
{
class Program
{
static void Main(string[] args)
{
const string ConnectionString = "LDAP://intranet.azienda.it";
string Utente = "pippo@intranet.azienda.it";
string Password = "passwordpippo";
string PasswordNuova = "nuovapasswordpippo";
DirectoryEntry entry = new DirectoryEntry(ConnectionString, Utente, Password, AuthenticationTypes.Secure | AuthenticationTypes.ServerBind);
try
{
entry.RefreshCache();
entry.Invoke("ChangePassword", new object[] { Password.ToString(), PasswordNuova.ToString() }); <--questa è la riga incriminata dove si genera l'eccezione
entry.CommitChanges();
entry.Close();
entry.Dispose();
Console.WriteLine("Cambio passowrd effettuato!");
Console.ReadLine();
}
catch (Exception ex)
{
entry.Close();
entry.Dispose();
string DirectoryCorrente = Directory.GetCurrentDirectory().ToString();
string FileLog = DirectoryCorrente + "ActiveDirectoryLog.txt";
string Log = ex.ToString();
StreamWriter WriteLog = new StreamWriter(FileLog);
WriteLog.Write(Log);
WriteLog.Close();
WriteLog.Dispose();
}
}
}
}