Efterligne en anden bruger ved hjælp af Web-API'en
Udgivet: januar 2017
Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Der er tidspunkter, hvor koden skal udføre handlinger på vegne af en anden bruger. Hvis systemkontoen, der kører koden, har de nødvendige rettigheder, kan du udføre handlinger på vegne af andre brugere.
Dette emne indeholder
Krav til efterligning
Sådan efterlignes en bruger
Bestemme den faktiske bruger
Krav til efterligning
Efterligning bruges til at udføre forretningslogik (kode) på vegne af en anden Microsoft Dynamics 365-bruger for at levere en ønsket funktion eller service ved hjælp af den rette rolle og objektbaseret sikkerhed for den bruger, der efterlignes. Dette er nødvendigt, da Microsoft Dynamics 365-webtjenester kan kaldes af forskellige klienter og tjenester på vegne af en Dynamics 365-bruger, for eksempel i en arbejdsproces eller en brugerdefineret ISV-løsning. Efterligning omfatter to forskellige brugerkonti: én brugerkonto (A) bruges ved udførelse af kode til at udføre en opgave på vegne af en anden bruger (B).
Brugerkontoen (A) skal have rettigheden prvActOnBehalfOfAnotherUser, som er medtaget i sikkerhedsrollen Stedfortræder. Det faktiske sæt rettigheder, der bruges til at ændre data, er skæringspunktet for de rettigheder, brugeren med stedfortræderrollen har med den bruger, der efterlignes. Med andre ord har bruger (A) tilladelse til at gøre noget, hvis og kun hvis bruger (A) og den efterlignede bruger (B) har de rettigheder, der er nødvendige til handlingen.
Sådan efterlignes en bruger
For at efterligne en bruger skal du tilføje headeren MSCRMCallerID, og den skal have en GUID-værdi, der svarer til den efterlignede brugers systemuserid, før du sender anmodningen til webtjenesten. I dette eksempel oprettes et nyt firmaobjekt på vegne af brugeren med systemuserid 00000000-0000-0000-000000000002.
Anmodning
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"}
Svar
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-000000000003)
Bestemme den faktiske bruger
Når en handling som oprettelse af et objekt udføres ved hjælp af efterligning, kan den bruger, der har udført handlingen, findes ved at forespørge på posten, herunder createdonbehalfby-navigationsegenskaben med en enkelt værdi. En tilsvarende modifiedonbehalfby-navigationsegenskab med en enkelt værdi er tilgængelig for handlinger, der opdaterer objektet.
Anmodning
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
Svar
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" } }
Se også
Udføre operationer ved hjælp af web-API
Skrive HTTP-anmodninger og håndtere fejl
Forespørg på data ved hjælp af Web-API'en
Oprette et objekt ved hjælp af Web-API
Hente et objekt ved hjælp af web-API'et
Opdatere og slette objekter ved hjælp af web-API'et
Tilknytte og fjerne tilknytningen af objekter ved hjælp af web-API'et
Bruge Web-API-funktioner
Brug Web API-handlinger
Udføre batchhandlinger ved hjælp af Web-API
Udfør betingede operationer ved hjælp af web-API
Microsoft Dynamics 365
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret