කුමන .NET පිවිසුම් දත්ත ප්රොක්සියට අයත්ද?
HTTP ප්රොක්සි සත්යාපනයේදී WebProxy.Credentials, ගමනාන්ත සේවාදායක දත්ත හා DefaultProxyCredentials වෙන්කර හඳුනාගන්න.
ඔබේම WebProxy සඳහා ප්රොක්සි ගිණුම එම වස්තුවේ තබන්න. වෙනත් .NET පිවිසුම් දත්ත ගුණාංගවල ලබන්නෝ වෙනස්ය:
| ගුණාංගය | ලබන්නා |
|---|---|
WebProxy.Credentials | එම වස්තුව නියෝජනය කරන ප්රොක්සිය. |
HttpClientHandler.Credentials | ගමනාන්ත සේවාදායකය. |
DefaultProxyCredentials | Proxy null හා UseProxy true වන විට පද්ධතියේ මුල් ප්රොක්සිය. |
මෙම .NET 10 උදාහරණය පැහැදිලිව නියමිත ප්රොක්සිය හා එහිම ගිණුම සපයයි:
using System;
using System.Net;
using System.Net.Http;
string password = Environment.GetEnvironmentVariable("PROXY_PASSWORD")
?? throw new InvalidOperationException("Set PROXY_PASSWORD");
var proxy = new WebProxy("http://203.0.113.10:8080")
{
Credentials = new NetworkCredential("proxy-user", password)
};
using var handler = new HttpClientHandler
{
Proxy = proxy,
UseProxy = true
};
using var client = new HttpClient(handler)
{
Timeout = TimeSpan.FromSeconds(15)
};
using var response = await client.GetAsync("https://example.com/");
Console.WriteLine((int)response.StatusCode);
ලේඛන අන්ත ලක්ෂ්යය මාරු කර ක්රියාකරු දුන් ගිණුම භාවිත කරන්න. සත්යාපනයක් නැති ලැයිස්තු සටහනකට කල්පිත පිවිසුමක් අවශ්ය නැත. හැන්ඩ්ලරයේ Proxy පැහැදිලිව පවරා ඇති නිසා DefaultProxyCredentials, WebProxy.Credentials වෙනුවට යෙදෙන්නේ නැත.
UseDefaultCredentials පරාසයත් වස්තුව මතය: හැන්ඩ්ලරයේ සේවාදායක සත්යාපනය හා WebProxy හි ප්රොක්සි සත්යාපනය වෙනස්ය. ක්රියාවලි පරිශීලකගේ ගිණුම යැවීම 407 සඳහා පොදු පිළිතුරක් නොවේ.
සත්යාපන අභියෝගය ඉතිරි නම් සැබෑ ක්රමය, තෝරාගත් අන්ත ලක්ෂ්යය හා ක්ලයන්ට්/හැන්ඩ්ලර් නිදර්ශනය බලන්න. ප්රොක්සි සත්යාපනය ගමනාන්ත TLS ට කලින් විය හැකි බැවින් වෙබ් අඩවියේ Authorization ශීර්ෂයට එයට පිළිතුරු දිය නොහැක. සහාය තවම හැන්ඩ්ලරය, වේදිකාව, සේවාව හා යෙදවීමේ ප්රතිපත්තිය අනුවය; ගෝලීය Windows ප්රොක්සි වෙනසක් අවශ්ය නැත.