Panggilan Graph API dan permintaan token ClientSecretCredential mempunyai titik masuk pengangkutan yang berasingan. Dengan Microsoft.Graph 5 dan Azure.Identity, konfigurasikan kedua-duanya sebelum mencipta klien:

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

Untuk laluan HTTP awam tanpa pengesahan, senarai proksi HTTP menyediakan alamat calon untuk WebProxy yang dikongsi. Aplikasi membekalkan tenantId, clientId dan clientSecret melalui pengendalian kelayakan sedia ada. Skop .default menggunakan kebenaran aplikasi yang dikonfigurasikan untuk pendaftaran itu; laluan tidak boleh memberikan kebenaran.

Baca kedua-dua baris pengangkutan sebagai pasangan penting. HttpClientTransport(tokenHandler) membawa permintaan token kelayakan. GraphClientFactory.Create(proxy: proxy) mengekalkan pembinaan perisian tengah HTTP Graph SDK sambil mengkonfigurasi laluan API-nya.

Jika perantara memerlukan pengesahan, tetapkan akaun yang diperlukan kepada sifat Credentials objek proksi. Kekalkan pengangkutan milik anda sepanjang hayat komponen dan lepaskannya semasa dimatikan.

Gunakan corak ini dengan generasi SDK yang dinyatakan. Contoh dengan HttpProvider dan DelegateAuthenticationProvider tergolong dalam generasi terdahulu dan tidak boleh dicampur ke dalam rantaian pembina ini.

Artikel berkaitan