Del via


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