Hola a todos, quisiera que me pudieran ayudar con mi problema.
Quiero que desde la web cualquier usuario del dominio pueda cambiar su contraseña. Les explico:
Tengo un dominio y usuario que tienen su maquina fuera de mi dominio y no se pueden unir al dominio pero sus usuarios son usuarios de mi dominio. La cuestión es que por política deben cambiar la contraseña en un plazo no mayor a 45 dias y al no loggearse en el dominio no se enteran cuando su contraseña está al caducar y lo que quiero es que entre a mi web y puedan desde ahí cambiarla. tengo adelantado algunas cosa pero el prinsipal problema es que para cambiar la contraseña hasta ahora con lo que he visto hay se necesita una cuenta de administrador de dominio y así no me sirve. les adjunto el código:
string adpath = "LDAP://" + ConfigurationSettings.AppSettings["MydcCom"];
string[] strADAdmin = ConfigurationSettings.AppSettings["ADAdminString"]
..Split(new char[]{','});
//strADAdmin[0]--administrator; strADAdmin[1]--password "Quisiera otra forma que no utilice las entrada de un administrador de dominio"
DirectoryEntry entry = new DirectoryEntry(adpath, strADAdmin[0], strADAdmin
[1]);
DirectoryEntry userEntry = new DirectoryEntry();
try
{
object obj = entry.NativeObject;
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = "(SAMAccountName=" + loginName + ")";
search.SearchScope = SearchScope.Subtree;
search.CacheResults = false;
SearchResultCollection results = search.FindAll();
foreach( SearchResult result in results )
{
userEntry = result.GetDirectoryEntry();
break;
}
if( userEntry != null )
{
userEntry.Invoke("SetPassword", new object[]{newPwd});
userEntry.CommitChanges();
}
return true;
}
Gracias.