Rappresentare un altro utente usando l'API Web
Data di pubblicazione: gennaio 2017
Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Vi sono situazioni in cui il codice deve eseguire operazioni per conto di un altro utente. Se l'account di sistema che esegue il codice dispone dei privilegi necessari, puoi eseguire operazioni per conto di altri utenti.
In questo argomento
Requisiti per la rappresentazione
Come rappresentare un utente
Determinare l'utente effettivo
Requisiti per la rappresentazione
La rappresentazione viene utilizzata per eseguire le regole business (codice) per conto di un altro utente di Microsoft Dynamics 365 al fine di offrire una funzionalità o servizio desiderato utilizzando il ruolo appropriato e la sicurezza basata sugli oggetti dell'utente rappresentato. È necessaria perché i servizi Web di Microsoft Dynamics 365 possono essere chiamati da vari client e servizi per conto di un utente di Dynamics 365, ad esempio, in un flusso di lavoro o in una soluzione ISV personalizzata. La rappresentazione interessa due account utenti diversi: un account utente (A) che viene utilizzato quando si esegue il codice per eseguire alcune attività per conto di un altro utente (B).
L'account utente (A) deve disporre del privilegio prvActOnBehalfOfAnotherUser, incluso nel ruolo di sicurezza Delegato. Il set effettivo di privilegi che viene utilizzato per modificare i dati è una combinazione dei privilegi dell'utente posseduti dal ruolo utente Delegato con quelli dell'utente che rappresenta. In altre parole, all'utente (A) è consentito eseguire un'azione se e solo se l'utente (A) e l'utente rappresentato (B) possiedono il privilegio necessario per l'azione.
Come rappresentare un utente
Per rappresentare un utente, aggiungi un'intestazione di richiesta denominata MSCRMCallerID con un valore GUID uguale all'systemuserid dell'utente rappresentato prima di inviare la richiesta al servizio Web. In questo esempio una nuova entità account viene creata per conto dell'utente con systemuserid 00000000-0000-0000-000000000002.
Richiesta
POST cc_WebAPI_ServiceURI/accounts HTTP/1.1 MSCRMCallerID: 00000000-0000-0000-000000000002 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0 {"name":"Sample Account created using impersonation"}
Risposta
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-000000000003)
Determinare l'utente effettivo
Quando un'operazione, ad esempio la creazione di un'entità, viene eseguita usando la rappresentazione, l'utente che ha eseguito l'operazione può essere trovato eseguendo una query sul record che include la proprietà di navigazione a valore singolo createdonbehalfby. Una proprietà di navigazione a valore singolo modifiedonbehalfby corrispondente è disponibile per le operazioni che aggiornano l'entità.
Richiesta
GET cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-000000000003)?$select=name&$expand=createdby($select=fullname),createdonbehalfby($select=fullname),owninguser($select=fullname) HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Risposta
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal ETag: W/"506868" { "@odata.context": "cc_WebAPI_ServiceURI/$metadata#accounts(name,createdby,createdonbehalfby,owninguser,createdby(fullname),createdonbehalfby(fullname),owninguser(fullname))/$entity", "@odata.etag": "W/\"506868\"", "name": "Sample Account created using impersonation", "accountid": "00000000-0000-0000-000000000003", "createdby": { "@odata.etag": "W/\"506834\"", "fullname": "Impersonated User", "systemuserid": "00000000-0000-0000-000000000002", "ownerid": "00000000-0000-0000-000000000002" }, "createdonbehalfby": { "@odata.etag": "W/\"320678\"", "fullname": "Actual User", "systemuserid": "00000000-0000-0000-000000000001", "ownerid": "00000000-0000-0000-000000000001" }, "owninguser": { "@odata.etag": "W/\"506834\"", "fullname": "Impersonated User", "systemuserid": "00000000-0000-0000-000000000002", "ownerid": "00000000-0000-0000-000000000002" } }
Vedere anche
Eseguire operazioni tramite l'API Web
Comporre richieste HTTP e gestire gli errori
Query di dati tramite l'API Web
Creare un'entità utilizzando l'API Web
Recupera un'entità utilizzando l'API Web
Aggiorna ed elimina le entità con l'API Web
Associa e annulla associazione entità con l'API Web
Utilizzare le funzioni API Web
Utilizzare le azioni API Web
Eseguire operazioni in batch usando l'API Web
Eseguire operazioni condizionali tramite l'API Web
Microsoft Dynamics 365
© 2017 Microsoft. Tutti i diritti sono riservati. Copyright