13

还有另一个问题可以回答这个问题,尽管它没有指定有关代理身份验证的任何内容。

它的解决方案是

(setq url-proxy-services '(("no_proxy" . "work\\.com")
                           ("http" . "proxy.work.com:911")))
4

5 回答 5

12

如今,我解决“经过身份验证的代理问题”的方法是使用CNTLM。它是可移植的,很容易配置并且可以作为守护进程运行。

于 2011-03-29T13:37:05.720 回答
7

我通过以下方式获得授权,无需用户交互:

(setq url-proxy-services
   '(("no_proxy" . "^\\(localhost\\|10.*\\)")
     ("http" . "proxy.com:8080")
     ("https" . "proxy.com:8080")))

(setq url-http-proxy-basic-auth-storage
    (list (list "proxy.com:8080"
                (cons "Input your LDAP UID !"
                      (base64-encode-string "LOGIN:PASSWORD")))))

这适用于 Emacs 24.3。它基于非公共 API 技巧,因此可能不适用于其他 Emacs 版本......

用您的身份验证信息替换LOGINPASSWORD...

于 2013-09-09T11:26:21.523 回答
6

好吧,如果您真的想这样做并且不介意使用其他程序,那么... socat就是答案。使用 socat 将本地端口转发到通过 http 代理的连接。您并没有绕过它,只是将功能“绑定”到没有它的应用程序(以防有人问)。这可能很困难。

如果您使用的是 unixy 操作系统,另一个非常有用的解决方案是安装您自己的使用身份验证代理(如 squid)的非身份验证 http 代理。对某些人来说,这可能看起来像是规避。当心。

例如,看看Proxytunnel

更新:Mike Hoss在他添加到上面链接的问题的评论中似乎是正确的。URL 包将要求输入 ID 和密码。至少这是我在文件 url-http.el 中的 url-http-create-request 的 defun 中看到的。

于 2010-06-06T20:01:09.903 回答
3

以防其他人遇到我刚刚遇到的问题:

如果您使用 cntlm 或其他一些本地身份验证代理,您可能需要指定环回 IP 地址而不是“localhost”。我发现“localhost”默默地失败了,但是“127.0.0.1”很有效。

于 2013-01-03T18:05:26.570 回答
2

ELPA 使用“url”包。据我所知,没有办法用它进行代理身份验证。

您可以在 Emacs 之外设置代理身份验证吗?

于 2010-05-26T15:30:41.177 回答