0

用户如何连接到 SocksProxyEndPoint 必须验证用户名和密码。

我在最新版本的 Titanium Web 代理中读到了这一点,它允许在创建 SocksProxyEndPoint 时启用用户名密码身份验证。但是我不知道如何编写该代码,也找不到说明性示例,有人可以帮我这样做吗

4

1 回答 1

0

对于基本身份验证,只需在实例上设置ProxyBasicAuthenticateFunc属性。ProxyServer例如:

void Main()
{
    var proxyServer = new ProxyServer();
    
    proxyServer.OnClientConnectionCreate += OnConnect;
    proxyServer.BeforeRequest += OnBeforeRequest;
    
    var socksProxy = new SocksProxyEndPoint(IPAddress.Loopback, 1080, false);
    
    proxyServer.ProxyBasicAuthenticateFunc = OnBasicAuth;
    
    proxyServer.AddEndPoint(socksProxy);
    proxyServer.Start();

    ...
}


public Task<bool> OnBasicAuth(SessionEventArgsBase ev, string u, string p) {
   if (u == "test" && p == "pass") {
       return Task.FromResult(true);
   }
   return Task.FromResult(false);
}

请注意,数据将以纯文本(不加密)发送。它在 Intranet 中可能是可以接受的,但如果您允许公开访问您的代理,请使用不同的身份验证方案 (ProxySchemeAuthenticateFunc) 或通过隧道传输流量。

于 2021-04-19T12:03:10.323 回答