jueves, 27 de septiembre de 2012

Authenticación en plugins y diferencias entre 4.0 y 2011

Hola,  como muchos habrán utilizado alguna vez, al trabajar con Plugins, a veces es difícil saber con que usuario se realizan las acciones que se desarrollen en el mismo.

Primero hay que tener en cuenta en el registro de los Plugins, en donde se puede seleccionar que dicho paso se ejecute con un usuario específico, o por el contrario el “Calling User”, que permitirá que en el contexto se “pase” el id del usuario que ha lanzado el Plugin:

image

Una vez que estamos en el código, debemos conectarnos al CRM para realizar diferentes acciones como por ejemplo una consulta, una actualización, etc.

Para esto se utiliza en 2011 el método IOrganizationServiceFactory.CreateOrganizationService (http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.iorganizationservicefactory.createorganizationservice.aspx).

En CRM 4.0 se utilizaba el método IPluginExecutionContext.CreateCrmService (http://msdn.microsoft.com/en-us/library/bb959583.aspx).

Para saber como podemos autenticarnos en los plugins dejo un listado que además muestra las diferencias entre 4.0 y 2011:

Tipo CRM 4.0 CRM 2011
Usuario conectado (Calling User) ICrmService service = context.CreateCrmService(true);
IOrganizationService service = serviceFactory.CreateOrganizationService(Guid.Empty);
Un usuario específico ICrmService service = context.CreateCrmService(context.UserId); IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
System User ICrmService service = context.CreateCrmService(false); IOrganizationService service = serviceFactory.CreateOrganizationService(null);

Un saludo,

No hay comentarios:

Publicar un comentario