ყოველი პროქსი-ანგარიშისთვის ცალკე .NET handler შეინახეთ
შექმენით ცალკე handler-ები ერთდროული ანგარიშებისთვის, ნაცვლად იმისა, რომ შეცვალოთ WebProxy.Credentials უკვე მოთხოვნებს მომსახურე ტრანსპორტზე.
ტრანსპორტმა შეიძლება შეინახოს პროქსის სერტიფიკატების მიმწოდებლის ის ობიექტი, რომელიც არჩეულ იქნა მისი pool-მენეჯერის შექმნისას. WebProxy.Credentials-ის შემდგომი შეცვლა ანგარიშის გადართვის საიმედო ოპერაცია არ არის.
შექმენით მარშრუტი და ანგარიში ერთად, სანამ კლიენტს გამოიყენებთ:
var proxy = new System.Net.WebProxy(proxyEndpoint)
{
Credentials = new System.Net.NetworkCredential(proxyUser, proxyPassword)
};
var handler = new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = proxy
};
var client = new System.Net.Http.HttpClient(handler);საბოლოო წერტილი და სერტიფიკატები აპლიკაციის კონფიგურაციიდან მოდის. მეორე იდენტობისთვის შექმენით სხვა handler; პირველი handler-ის გამზიარებელი სხვა HttpClient მის პოლიტიკასაც იზიარებს.
მორგებულ ICredentials მიმწოდებელს შეუძლია უპასუხოს გვიანდელ გამოწვევებს, მაგრამ ვერ შეძლებს დამკვიდრებული გვირაბის სხვა ანგარიშად გადანიშვნას. ასინქრონული გამოძახებების გარშემო ერთი გლობალური მომხმარებლის სახელის/პაროლის მინიჭება გამოწვევის დროსა და ანგარიშის საკუთრებას კონფლიქტში ტოვებს.
როცა ხელახალი გამოყენებაა საჭირო, შეზღუდული კლიენტების ნაკრები შეინახეთ. ძველი სამუშაო გადაწურეთ მისი ტრანსპორტის განადგურებამდე. ყოველ მოთხოვნაზე ახალი handler კავშირების pool-ებს ფლანგავს; ყველა ისტორიული ანგარიშის სამუდამოდ შენახვა მათ უსაზღვროდ ზრდის.