Hola. Yo tengo un Windows 2003 Server con IIS 6 el cual corre aplicaciones ASP.NET mas que nada para que los usuarios se registren a la pagina y si desean cambiar su cotraseña si se les olvida. Todo esta funcionando ok, el problema es que estoy migrando todo a Windows 2008 y IIS 7. Pruebo las aplicaciones en el Micrsoft Web Developer 2010 Express instalado en el Windows Server 2008 y alli todo ok. Cuando paso las aplicaciones a IIS no funcionan los programas. Haciendo un seguimiento al codigo llego a la conclusion que el problema ocurre cuando el usuario quiere asignar un password cuando se registra. Esta es la parte del codigo con problemas.
//Le colocamos el password:
string rutauser = "LDAP://CN=" + TextBox3.Text + ",OU=usuarios,DC=dia2x,DC=com";
DirectoryEntry entpass = new DirectoryEntry("" + rutauser + "","Administrator","mypass",AuthenticationTypes.Se cure);
/// entpass.Properties["pwdLastSet"].Value = 0;
/// entpass.Invoke("SetPassword", new object[] { "" + TextBox2.Text + "" });
object[] oPassword = new object[] { TextBox2.Text };
object ret = entpass.Invoke("SetPassword", oPassword);
entpass.Close();
Como ven probe dos maneras de hacer esto, pero pasa lo mismo. Me manda el siguiente error
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6) that is used if the application is not impersonating. If the application is impersonating via <identity impersonate="true"/>, the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.
To grant ASP.NET access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access.
He estado desde el Lunes pasado buscando una solucion y nada. Lo raro es que desde Microsoft Visual Web Developer express las dos opciones funcionan. Se puede cambiar el password del usuario el Active directory.
Alguna idea.
Saludos