Graph API कॉल आणि ClientSecretCredential टोकन विनंत्या यांचे वेगळे ट्रान्सपोर्ट प्रवेश बिंदू आहेत. Microsoft.Graph 5 आणि Azure.Identity सह, क्लायंट तयार करण्यापूर्वी दोन्ही कॉन्फिगर करा:

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

प्रमाणीकरण नसलेल्या सार्वजनिक HTTP मार्गासाठी HTTP प्रॉक्सी सूची सामायिक WebProxy साठी उमेदवार पत्ते देते. अनुप्रयोग त्याच्या विद्यमान क्रेडेन्शियल हाताळणीद्वारे tenantId, clientId आणि clientSecret पुरवतो. .default स्कोप त्या नोंदणीसाठी कॉन्फिगर केलेल्या अनुप्रयोग परवानग्या वापरतो; मार्ग परवानग्या देऊ शकत नाही.

दोन्ही ट्रान्सपोर्ट ओळी महत्त्वाची जोडी म्हणून वाचा. HttpClientTransport(tokenHandler) क्रेडेन्शियलची टोकन विनंती वाहते. GraphClientFactory.Create(proxy: proxy) Graph SDK ची HTTP मिडलवेअर रचना टिकवून ठेवत त्याचा API मार्ग कॉन्फिगर करते.

मध्यस्थाला प्रमाणीकरण आवश्यक असल्यास, आवश्यक खाते प्रॉक्सी ऑब्जेक्टच्या Credentials ला नियुक्त करा. कंपोनंटच्या आयुष्यभर तुमचे स्वतःचे ट्रान्सपोर्ट ठेवा आणि बंद करताना ते सोडवा.

हा नमुना नमूद केलेल्या SDK पिढीसह वापरा. HttpProvider आणि DelegateAuthenticationProvider उदाहरणे पूर्वीच्या पिढीतील आहेत आणि या कन्स्ट्रक्टर शृंखलेत मिसळता येत नाहीत.

संबंधित लेख