2

我正在编写 Firefox 扩展程序,并希望获取网站(或当前文档)的基本身份验证信息。

如何在 Firefox 扩展中获取基本身份验证信息?

4

2 回答 2

3

下面是一些使用nsIHttpAuthManager的示例代码:

实例化组件:

var proxyAuthenticationComponent = Components.classes["@mozilla.org/network/http-auth-manager;1"].getService(Components.interfaces.nsIHttpAuthManager);

设置信息:

proxyAuthenticationComponent.setAuthIdentity('http','192.168.0.1',80,"basic","Some Realm","","","username","password");

获取信息:

var domain = {}; //Will contain {value: ""}
var username = {}; //Will contain {value: "username"}
var password = {}; //Will contain {value: "password"}
proxyAuthenticationComponent.getAuthIdentity('http','192.168.0.1',80,"basic","Some Realm","",domain,username,password);

我在 Thunderbird 扩展中使用了它。希望这有帮助。

于 2011-03-29T08:03:12.243 回答
2

我找不到确切的答案,现在也没有时间进行试验,但似乎唯一的方法是使用NsIHttpChannel手动检查标头。

编辑:好的,我找到了 nsIHttpAuthManager

此服务提供对在当前浏览器会话期间访问的站点的缓存 HTTP 身份验证用户凭据(域、用户名、密码)的访问。

看起来正是您需要的。

于 2009-03-13T15:12:42.437 回答