Graph API çağrıları ile ClientSecretCredential token isteklerinin ayrı taşıma giriş noktaları vardır. Microsoft.Graph 5 ve Azure.Identity ile istemciyi oluşturmadan önce ikisini de yapılandırın:

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

Kimlik doğrulaması olmayan genel bir HTTP yolu için HTTP proxy listesi paylaşılan WebProxy için aday adresler sağlar. Uygulama tenantId, clientId ve clientSecret değerlerini mevcut kimlik bilgisi işleyişi üzerinden sağlar. .default kapsamı, o kayıt için yapılandırılmış uygulama izinlerini kullanır; bir yol izin veremez.

İki taşıma satırını önemli ikili olarak okuyun. HttpClientTransport(tokenHandler) kimlik bilgisinin token isteğini taşır. GraphClientFactory.Create(proxy: proxy) Graph SDK'nın HTTP ara katman yapısını korurken API yolunu yapılandırır.

Aracı kimlik doğrulaması gerektiriyorsa gereken hesabı proxy nesnesinin Credentials özelliğine atayın. Sahip olduğunuz taşımaları bileşenin ömrü boyunca saklayın ve kapatma sırasında bunları bırakın.

Bu deseni belirtilen SDK nesliyle kullanın. HttpProvider ve DelegateAuthenticationProvider örnekleri daha eski bir nesle aittir ve bu oluşturucu zincirine karıştırılamaz.

İlgili makaleler