Creé una aplicación que accede al servicio web de CRM. El problema es que cuando implementé el dll en el servidor Sharepoint, devolvió el error 401 no autorizado. Aparentemente el System.Net.CredentialCache.DefaultCredentials no funcionó (mi sospecha). Aquí está el código.DefaultCredentials in Access to CRM/Sharepoint Web Services
CrmSdk.CrmAuthenticationToken token = new CrmSdk.CrmAuthenticationToken();
token.AuthenticationType = AuthenticationType.AD;
token.OrganizationName = ORGANIZATION_NAME;
CrmService service = new CrmService();
service.Url = "http://crmserver:5555/mscrmservices/2007/crmservice.asmx";
service.CrmAuthenticationTokenValue = token;
service.PreAuthenticate = true;
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
Va al revés.
Cuando realicé una aplicación que accede al servicio web de Sharepoint (codificando el complemento) y lo despliego en el servidor CRM. No pudo acceder al servicio web de Sharepoint. Error no autorizado. Aquí está el código:
Lists listService = new Lists();
listService.PreAuthenticate = true;
listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
listService.Url = "http://sharepointserver/webname/_vti_bin/Lists.asmx";
Mi servidor CRM y servidor Sharepoint están en el mismo dominio.
Para ambos códigos, si cambié la parte de credenciales en algo así y luego la implementé en el servidor, puede ejecutarse.
service.Credentials = new NetworkCredential("username", "password", "domain");
Aún así, no quiero hacer esto porque revela la contraseña del usuario en el código. ¿Puede alguien ayudarme?
IIS en ambos servidores no permite el acceso anónimo y usa la autenticación integrada de Windows.
Gracias
De mi equipo local, puedo acceder a los servicios web de CRM o servicios Web de SharePoint. Supongo que estoy autorizado porque las DefaultCredentials enviaron mis credenciales que su contraseña se guardó en "Nombre de usuario y contraseña almacenados" (Panel de control> Cuentas de usuario> pestaña Avanzado> Administrar contraseñas) De esta manera, no lo hago tiene que escribir:
service.Credentials = new NetworkCredential("username", "password", "domain");
y mis DefaultCredentials de mi comp local están autorizados para acceder a los servicios web.
Intenté implementar esto en el servidor Sharepoint que accede a los servicios web de CRM. y..tadaa..it no funcionará. jajaja ..
¿podemos inyectar credenciales a DefaultCredentials en el servidor?
la última cosa que quiero hacer es codificar el UserAccount (como el código anterior)
Hm..He verificado antes y el servidor utiliza la autenticación Kerberos. cualquier otra opción u opinión? : D gracias de todos modos: D – cyrene