Apelurile Graph API și cererile de token ale ClientSecretCredential au puncte de intrare de transport separate. Cu Microsoft.Graph 5 și Azure.Identity, configurați ambele înainte de a crea clientul:

var proxy = new System.Net.WebProxy(
    "http://proxy.example.net:8080");

var tokenHandler = new System.Net.Http.HttpClientHandler
{
    Proxy = proxy,
    UseProxy = true
};

var credentialOptions = new Azure.Identity.ClientSecretCredentialOptions
{
    Transport = new Azure.Core.Pipeline.HttpClientTransport(tokenHandler)
};

var credential = new Azure.Identity.ClientSecretCredential(
    tenantId, clientId, clientSecret, credentialOptions);

var authProvider =
    new Microsoft.Kiota.Authentication.Azure.AzureIdentityAuthenticationProvider(
        credential, scopes: new[] { "https://graph.microsoft.com/.default" });

var graphHttp = Microsoft.Graph.GraphClientFactory.Create(proxy: proxy);
var graphClient = new Microsoft.Graph.GraphServiceClient(
    graphHttp, authProvider);

Pentru o rută HTTP publică neautentificată, lista de proxy HTTP oferă adrese candidate pentru WebProxy partajat. Aplicația furnizează tenantId, clientId și clientSecret prin gestionarea existentă a acreditărilor. Domeniul .default folosește permisiunile aplicației configurate pentru acea înregistrare; o rută nu poate acorda permisiuni.

Citiți cele două linii de transport ca perechea importantă. HttpClientTransport(tokenHandler) transportă cererea de token a acreditării. GraphClientFactory.Create(proxy: proxy) păstrează construcția middleware-ului HTTP al Graph SDK și configurează în același timp ruta API a acestuia.

Dacă intermediarul necesită autentificare, atribuiți contul necesar proprietății Credentials a obiectului proxy. Păstrați transporturile deținute pe toată durata de viață a componentei și eliberați-le la oprire.

Utilizați acest model cu generația SDK indicată. Exemplele cu HttpProvider și DelegateAuthenticationProvider aparțin unei generații anterioare și nu pot fi combinate în acest lanț de constructori.

Articole similare