Wie führe ich die Proxy -Authentifizierung in Selen unter Verwendung eines unentdeckten Chromtreibers in C#?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie führe ich die Proxy -Authentifizierung in Selen unter Verwendung eines unentdeckten Chromtreibers in C#?

by Guest » 05 Feb 2025, 13:02

Ich habe versucht, Proxy mit Anmeldeinformationen in Selen mit einem unentdeckten Chromtreiber in C#einzurichten. Ich habe auch versucht, die Erweiterung ohne ZIP -Datei zu laden, aber ich habe trotzdem keinen Erfolg bekommen. Ich versuche den Proxy so festzulegen:-< /p>
static string CreateProxyAuthExtension(string proxyHost, int proxyPort, string proxyUser, string proxyPass)
{
string manifestJson = @"
{
""manifest_version"": 2,
""name"": ""Proxy Auth Extension"",
""version"": ""1.0"",
""permissions"": [
""proxy"",
""tabs"",
""unlimitedStorage"",
""storage"",
"""",
""webRequest"",
""webRequestBlocking""
],
""background"": {
""scripts"": [""background.js""]
},
""minimum_chrome_version"": ""22""
}";

string backgroundJs = @"
chrome.runtime.onInstalled.addListener(() => {
chrome.storage.local.set({
proxyHost: '" + proxyHost + @"',
proxyPort: '" + proxyPort + @"',
proxyUser: '" + proxyUser + @"',
proxyPass: '" + proxyPass + @"'
});
chrome.storage.local.get(['proxyHost', 'proxyPort', 'proxyUser', 'proxyPass'], function (data) {
var config = {
mode: 'fixed_servers',
rules: {
singleProxy: {
scheme: 'http',
host: data.proxyHost || 'default.proxy.server',
port: parseInt(data.proxyPort) || 8080
},
bypassList: ['localhost', '127.0.0.1']
}
};

chrome.proxy.settings.set({ value: config, scope: 'regular' }, function () {});

chrome.webRequest.onAuthRequired.addListener(
function (details) {
return {
authCredentials: {
username: data.proxyUser || 'defaultUser',
password: data.proxyPass || 'defaultPass'
}
};
},
{ urls: [''] },
['blocking']
);
});
});
";

string extensionDir = Path.Combine(Directory.GetCurrentDirectory(), "extension");
string extensionZip = Path.Combine(Directory.GetCurrentDirectory(), "proxy_auth_extension.zip"); //Path.Combine(extensionDir, "proxy_auth_extension.zip");
try
{
// Create extension folder
if (!Directory.Exists(extensionDir))
Directory.CreateDirectory(extensionDir);

// Write files
File.WriteAllText(Path.Combine(extensionDir, "manifest.json"), manifestJson);
File.WriteAllText(Path.Combine(extensionDir, "background.js"), backgroundJs);

//Create ZIP archive for the extension
if (File.Exists(extensionZip))
File.Delete(extensionZip);
ZipFile.CreateFromDirectory(extensionDir, "proxy_auth_extension.zip");
}

catch (Exception ex)
{

}
return extensionZip;
}

ChromeOptions m_Options = new ChromeOptions();
extensionPath = CreateProxyAuthExtension(objWebProxy.Address.Host, objWebProxy.Address.Port, ((System.Net.NetworkCredential)objWebProxy.Credentials).UserName, ((System.Net.NetworkCredential)objWebProxy.Credentials).Password);
m_Options.AddExtension(extensionPath);

m_Options.AddArgument("--disable-blink-features=AutomationControlled");

using (var driver = UndetectedChromeDriver.Create(options: m_Options, driverExecutablePath: new ChromeDriverInstaller().Auto().Result))
{
driver.Manage().Window.Maximize();

strCompleteURL = "https://www.google.com/";
driver.Navigate().GoToUrl(strCompleteURL);

}
< /code>
Aber Proxy wird mit diesem Code nicht festgelegt. Ich habe in ganz Google nach der Lösung gesucht, aber nichts gefunden. Kann mir jemand in die richtige Richtung helfen?

Top