Stel 'n instaanbediener op vir Microsoft Graph SDK v5 en Azure Identity
Stel die Graph API-vervoer en die ClientSecretCredential-vervoer tydens inisialisering op sodat beide API- en tokenversoeke 'n roete het.
Graph API-oproepe en ClientSecretCredential-tokenversoeke het afsonderlike vervoertoegangspunte. Met Microsoft.Graph 5 en Azure.Identity stel jy albei op voordat die kliënt geskep word:
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);Vir 'n ongeverifieerde openbare HTTP-roete bied die HTTP-instaanbedienerlys kandidaatadresse vir die gedeelde WebProxy. Die toepassing voorsien tenantId, clientId en clientSecret deur sy bestaande hantering van geloofsbriewe. Die .default-omvang gebruik die toepassingsregte wat vir daardie registrasie opgestel is; 'n roete kan nie regte toeken nie.
Lees die twee vervoerreëls as die belangrike paar. HttpClientTransport(tokenHandler) dra die geloofsbrief se tokenversoek. GraphClientFactory.Create(proxy: proxy) behou die Graph SDK se HTTP-middelwarekonstruksie terwyl dit sy API-roete opstel.
As die tussenganger verifikasie vereis, ken die vereiste rekening aan die instaanbediener-objek se Credentials toe. Behou vervoer wat jy besit vir die leeftyd van die komponent en stel dit by afsluiting vry.
Gebruik hierdie patroon met die genoemde SDK-generasie. Voorbeelde met HttpProvider en DelegateAuthenticationProvider behoort aan 'n vroeëre generasie en kan nie in hierdie konstruktor-ketting gemeng word nie.