标签: proxy-authentication

POCO Net C++库中的代理验证

我一直在玩Poco Net库一段时间,这是非常好的.非常方便易懂.

我能够设置代理地址,并且正确地说需要407代理授权.我想是的

HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1);
req.setCredentials(scheme, authInfo);
Run Code Online (Sandbox Code Playgroud)

我尝试了方案中的"basic","plaintext"和authInfo中的"user:password"等值.它似乎不起作用.谷歌没有帮助.

有没有人以前使用Poco Net做过这件事?或者用法是显而易见的,因为我一般不了解代理身份验证,所以我无法使用它?请指教.

编辑:经过一些更多的游戏,我认为当远程服务器期望身份验证信息登录时使用setCredentials函数.我无法找到使用Poco Net库进行代理身份验证的方法.我能够设置代理服务器和端口.如果只有没有身份验证的代理服务器,我就会这样做:

HTTPClientSession session(uri.getHost(), uri.getPort());
HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1);
session.setProxy("host", port);
session.sendRequest(req);
Run Code Online (Sandbox Code Playgroud)

需要帮忙.

编辑:基于@StackedCrooked建议的解决方案,我尝试在发出请求之前将代理身份验证详细信息设置到请求标头,并且在互联网上找到的另一种方法中,我只在发出初始请求和407错误后才设置代理身份验证详细信息来了,然后再次提出请求.两种方法都保持相同的407错误.我当前的代码如下所示:

HTTPClientSession session(uri.getHost(), uri.getPort());
HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1);
session.setProxy("10.7.128.1", 8080);
req.set("Proxy-Authentication", "Basic bGVlbGE6bGVlbGExMjM=");
session.sendRequest(req);
Run Code Online (Sandbox Code Playgroud)

c++ proxy-authentication

6
推荐指数
1
解决办法
4287
查看次数

远程服务器返回错误:(407)需要代理验证

我在.NET 3.5中使用此代码并收到错误"远程服务器返回错误:(407)需要代理验证."

using (WebClient client = new WebClient())
{
    WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;

    try
    {
        string webPageStr = client.DownloadString(URL);
        Console.WriteLine("OK");
    }
    catch (Exception ex)
    {
        Console.WriteLine("FAIL");
        Console.WriteLine(ex.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,此代码可以在.NET 4.0中顺利运行,因为此行足以传递代理身份验证,而不适用于.NET 3.5.

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;
Run Code Online (Sandbox Code Playgroud)

因此,我尝试了许多其他方法来解决这个问题,但没有一个工作:

1)用.替换CredentialCache.DefaultCredentials行

WebRequest.DefaultWebProxy.Credentials = new NetworkCredential(user, password, domain);
Run Code Online (Sandbox Code Playgroud)

2)创建新的代理对象

IWebProxy proxy = new WebProxy(proxyUrl, port);
proxy.Credentials = new NetworkCredential(user, pass, domain);
client.Proxy = proxy;
client.Credentials = new NetworkCredential(user, pass, domain);
Run Code Online (Sandbox Code Playgroud)

3)添加此行

client.UseDefaultCredentials = true;
Run Code Online (Sandbox Code Playgroud)

4)使用HttpWebRequest而不是WebClient并重复上面的每个过程.这是示例代码.

HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = …
Run Code Online (Sandbox Code Playgroud)

c# .net-3.5 proxy-authentication http-status-code-407

6
推荐指数
1
解决办法
2万
查看次数

如何使用android studio的代理连接

我正在尝试在android studio中运行"hello world"应用程序.我的连接是通过代理.当我尝试运行"hello world app"时,android studio会显示下一个错误:

运行Prueba时出错:Gradle项目同步失败.请修复您的项目,然后重试.

如果我配置:"文件/设置 - > HTTP代理",然后下一步我的代理配置,错误是下一个:

错误:无法获取' http://jcenter.bintray.com/com/android/tools/build/gradle/0.12.2/gradle-0.12.2.pom '.从服务器收到状态代码407:需要代理身份验证(ISA Server需要授权才能完成请求.拒绝访问Web代理筛选器.) <a href="toggle.offline.mode">Enable Gradle 'offline mode' and sync project</a>

我该如何解决这个错误?

proxy android proxy-authentication android-studio

6
推荐指数
2
解决办法
2万
查看次数

使用 AWS CloudFront 时如何向公众隐藏自定义源服务器?

我不确定这是否完全符合 StackOverflow 的要求,但由于我需要以编程方式执行此操作,并且我认为 SO 上的很多人都在使用 CloudFront,我认为确实如此……所以这里是:

我想隐藏对我的自定义源服务器的公共访问。

CloudFront 从自定义源中提取,但是我找不到有关在 CloudFront 后面代理时防止用户直接请求到我的源的文档或任何类型的示例,除非我的源是 S3 ...自定义源不是这种情况。

我可以使用什么技术来识别/验证请求是通过 CloudFront 代理的,而不是由客户端直接请求的?

CloudFront 文档仅涵盖与 S3 源一起使用时的这种情况。列出 CloudFront 的 IP 地址的 AWS 论坛帖子有一项免责声明,即不保证该列表是最新的,不应依赖该列表。请参阅https://forums.aws.amazon.com/ann.jspa?annID=910

我假设任何使用 CloudFront 的人都可以通过某种方式向直接请求/爬虫程序隐藏他们的自定义来源。我很感激任何让我开始的提示。谢谢。

authentication reverse-proxy cdn proxy-authentication amazon-cloudfront

5
推荐指数
1
解决办法
3990
查看次数

使用用户名和密码连接 ADB 代理

我正在使用 ADB 命令

adb shell settings put global http_proxy <ip>:<port>
Run Code Online (Sandbox Code Playgroud)

效果很好。

但如果代理受用户名和密码保护,我将无法登录代理

如果你知道什么,请帮助我。

shell adb proxy-authentication

5
推荐指数
1
解决办法
7042
查看次数

ClickOnce Not Obeying Localhost的安装文件夹

我正在测试ClickOnce应用程序部署.我在我的机器上设置了一个虚拟目录(运行IIS).我已在Visual Studio的"发布"选项卡中将http:// localhost/SampleApplication指定为"安装文件夹URL".但是,当我发布应用程序时,我收到以下错误:

警告:无法从http:// chrish/SampleApplication /下载文件.

远程服务器返回错误:(407)需要代理身份验证.发布成功.

警告:无法在http://chrish/SampleApplication/publish.htm查看已发布的应用程序 . HTTP://chrish/SampleApplication/publish.htm

请注意它是如何将我的URL从Localhost更改为我的登录名.为什么?一周前没有发生这种情况.

clickonce proxy publish localhost proxy-authentication

4
推荐指数
1
解决办法
3703
查看次数

npm 错误!代码 E407 需要代理身份验证

当我尝试运行 npm 命令时,出现错误。

错误日志重现如下:

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'install',
1 verbose cli   'graph' ]
2 info using npm@6.4.1
3 info using node@v10.15.3
4 verbose npm-session 7743923ae4798761
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 http fetch GET 407 https://registry.npmjs.org/graph 7681ms
8 silly fetchPackageMetaData error for graph@latest 407 Proxy Authentication Required: graph@latest
9 timing stage:rollbackFailedOptional Completed in 9ms
10 timing stage:runTopLevelLifecycles …
Run Code Online (Sandbox Code Playgroud)

proxy-authentication npm

4
推荐指数
1
解决办法
2万
查看次数

创建一个可以在JAAS Security中传递用户名和密码的URLConnection

嗨,我有类似以下的东西,使URL连接并检索数据.问题是,当我点击需要身份验证的页面时,我会获得登录页面.我不确定如何在URLConnection中传递用户名和密码.我正在使用JAAS认证的网站.

import java.net.URL;
import java.net.URLConnection;

.....

URL location = new URL("www.sampleURL.com");
URLConnection yc = location.openConnection();
BufferedReader in = new BufferedReader(
    new InputStreamReader(
    yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) 
    data += inputLine + "\n";
in.close();
Run Code Online (Sandbox Code Playgroud)

我试过这样的东西,但似乎没有用......

URL url = new URL("www.myURL.com");
URLConnection connection = url.openConnection();
String login = "username:password";
String encodedLogin = new BASE64Encoder().encodeBuffer(login.getBytes());
connection.setRequestProperty("Proxy-Authorization", "Basic " + encodedLogin);
Run Code Online (Sandbox Code Playgroud)

java proxy proxy-authentication

2
推荐指数
1
解决办法
2万
查看次数

(407)需要代理验证

我知道这已被问过很多次了.我已经阅读了这里的大部分帖子和其他类似的网站.

http://social.msdn.microsoft.com/Forums/en-US/ncl/thread/2931d21c-9ca8-4256-b213-915fad4c941b/

无济于事.这是环境

Windows Server 2008 R2 64位Visual Studio 2008 .Net Framework 3.5

这是我尝试过的

我使用代码进行了代理身份验证

WebRequest req = WebRequest.Create(requestUri + data);
req.Proxy = new System.Net.WebProxy(<ProxyURL>:<port>",true);
req.Proxy.Credentials = CredentialCache.DefaultCredentials;
WebResponse resp = req.GetResponse();
Run Code Online (Sandbox Code Playgroud)

这工作,但看到它减慢了应用程序,我了解到我可以编辑我所做的machine.config文件.它也有效!

    <system.net>
      <defaultProxy
      useDefaultCredentials="true">
      <proxy
        proxyaddress="<proxyURL>:<port>"
        bypassonlocal="True"/>
     </defaultProxy>
   </system.net>
Run Code Online (Sandbox Code Playgroud)

至少一天或2.然后它开始失败.

然后我把它编辑成这个

    <system.net>
     <defaultProxy
       useDefaultCredentials="true">
       <proxy usesystemdefault="True"/>
       </defaultProxy>
    </system.net>
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这将使用IE设置连接到代理但仍然无法正常工作.我也尝试过代码

WebProxy proxy = new WebProxy(<proxy>:<port>);
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri(requestUri + data), "BASIC", new NetworkCredential(<username>,<password>));
proxy.Credentials = myCache;
request.Proxy = proxy;
request.Method = "GET";
Run Code Online (Sandbox Code Playgroud)

这没用.

注意:我可以将machine.config文件复制到我的计算机(Win XP)并从那里运行.exe(没有代理代码),它工作正常. …

c# proxy proxy-authentication

2
推荐指数
1
解决办法
3万
查看次数

使用 Chrome 驱动程序的 C# Selenium 代理身份验证

我正在使用以下代码作为代理。但是,当chrome启动时,会弹出弹窗,并且程序会被锁定。

public async void StartDriver(string proxy)
    {
        var proxys = new Proxy();
        ChromeDriverService chromeDriverService = ChromeDriverService.CreateDefaultService();
        chromeDriverService.HideCommandPromptWindow = true;
        ChromeOptions chromeOptions = new ChromeOptions();
        bool flag = !string.IsNullOrEmpty(proxy);
        if (flag)
        {
            proxys.Kind = ProxyKind.Manual;
            proxys.IsAutoDetect = false;
            proxys.SslProxy = proxy;
            chromeOptions.Proxy = proxys;
        }
        driver = new ChromeDriver(chromeDriverService, chromeOptions, TimeSpan.FromMinutes(10));
        await Task.Delay(2000);
    }
Run Code Online (Sandbox Code Playgroud)

我尝试过 http 或 ssl 同样...

StartDriver("88.55.66.77:8080");
Run Code Online (Sandbox Code Playgroud)

或者

StartDriver("http://username:pass@88.55.66.77:8080");
Run Code Online (Sandbox Code Playgroud)

我无法使用某种代理启动浏览器。

我想要一个可以自动输入用户名和密码的代码。我不需要 autoitx3.dll。

有没有办法启动安全代理?

谢谢。

proxy-authentication selenium-chromedriver

2
推荐指数
1
解决办法
7842
查看次数