Как получить базовую информацию для аутентификации в расширении Firefox? - PullRequest
2 голосов
/ 12 марта 2009

Я кодирую расширение Firefox и хочу получить информацию о базовой аутентификации для веб-сайта (или для текущего документа).

Как получить базовую информацию для аутентификации в расширении Firefox?

Ответы [ 2 ]

3 голосов
/ 29 марта 2011

Вот пример кода для использования 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. Надеюсь, что это поможет.

2 голосов
/ 13 марта 2009

Я не смог найти точного ответа, и сейчас у меня нет времени на эксперименты, но, похоже, единственный способ - это вручную проверить заголовки, используя NsIHttpChannel .

EDIT: Хорошо, я нашел nsIHttpAuthManager :

Эта служба предоставляет доступ к кэшированным учетным данным пользователя для аутентификации HTTP (домен, имя пользователя, пароль) для сайтов, посещенных во время текущего сеанса браузера.

Похоже, именно то, что вам нужно.

...