Graph API iškvietimai ir ClientSecretCredential žetono užklausos turi atskirus transporto įėjimo taškus. Naudodami Microsoft.Graph 5 ir Azure.Identity, sukonfigūruokite abu prieš kuriant klientą:

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);

Neautentifikuotam viešam HTTP maršrutui HTTP tarpinių serverių sąrašas siūlo kandidatų adresus bendram WebProxy. Programa pateikia tenantId, clientId ir clientSecret per esamą kredencialų tvarkymą. .default sritis naudoja tai registracijai sukonfigūruotus programos leidimus; maršrutas negali suteikti leidimų.

Dvi transporto eilutes skaitykite kaip svarbią porą. HttpClientTransport(tokenHandler) perduoda kredencialo žetono užklausą. GraphClientFactory.Create(proxy: proxy) išlaiko Graph SDK HTTP tarpinės programinės įrangos konstrukciją ir kartu sukonfigūruoja jo API maršrutą.

Jei tarpininkas reikalauja autentifikavimo, priskirkite reikiamą paskyrą tarpinio serverio objekto savybei Credentials. Išlaikykite savo transportus visą komponento gyvavimo laiką ir atlaisvinkite juos išjungiant.

Naudokite šį šabloną su nurodyta SDK karta. HttpProvider ir DelegateAuthenticationProvider pavyzdžiai priklauso ankstesnei kartai ir negali būti maišomi šioje konstruktorių grandinėje.

Susiję straipsniai