ការហៅ Graph API និងសំណើ token របស់ ClientSecretCredential មានចំណុចចូលដឹកជញ្ជូនដាច់ដោយឡែក។ ជាមួយ Microsoft.Graph 5 និង Azure.Identity សូមកំណត់ទាំងពីរមុនពេលបង្កើត client:

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 សាធារណៈដែលមិនមានការផ្ទៀងផ្ទាត់ បញ្ជី proxy HTTP ផ្តល់អាសយដ្ឋានបេក្ខជនសម្រាប់ WebProxy រួម។ កម្មវិធីផ្តល់ tenantId, clientId និង clientSecret តាមរយៈការគ្រប់គ្រងព័ត៌មានសម្ងាត់ដែលមានស្រាប់។ វិសាលភាព .default ប្រើការអនុញ្ញាតកម្មវិធីដែលបានកំណត់សម្រាប់ការចុះឈ្មោះនោះ; ផ្លូវមួយមិនអាចផ្តល់ការអនុញ្ញាតបានទេ។

អានបន្ទាត់ដឹកជញ្ជូនទាំងពីរជាគូសំខាន់។ HttpClientTransport(tokenHandler) ដឹកសំណើ token របស់ព័ត៌មានសម្ងាត់។ GraphClientFactory.Create(proxy: proxy) រក្សាការសាងសង់ middleware HTTP របស់ Graph SDK ខណៈពេលកំណត់ផ្លូវ API របស់វា។

ប្រសិនបើអ្នកកណ្តាលត្រូវការការផ្ទៀងផ្ទាត់ សូមកំណត់គណនីដែលត្រូវការទៅ Credentials របស់វត្ថុ proxy។ រក្សាការដឹកជញ្ជូនដែលអ្នកគ្រប់គ្រងពេញអាយុកាលសមាសភាព ហើយដោះលែងពួកវានៅពេលបិទ។

ប្រើលំនាំនេះជាមួយជំនាន់ SDK ដែលបានបញ្ជាក់។ ឧទាហរណ៍ជាមួយ HttpProvider និង DelegateAuthenticationProvider ជារបស់ជំនាន់មុន ហើយមិនអាចលាយចូលក្នុងខ្សែសង្វាក់ constructor នេះបានទេ។

អត្ថបទពាក់ព័ន្ធ