Google chrome extension 在FireBreatch中使用GetAuthenticationInfo获取用户/密码时出现问题

Google chrome extension 在FireBreatch中使用GetAuthenticationInfo获取用户/密码时出现问题,google-chrome-extension,firefox-addon,basic-authentication,npapi,firebreath,Google Chrome Extension,Firefox Addon,Basic Authentication,Npapi,Firebreath,我正在尝试使用NpapiBrowserHost.GetAuthenticationInfo方法从Firebreath插件获取用户/密码 我需要为基于npapi的浏览器(chrome/firefox/opera)执行此操作。这是我的代码: boost::shared_ptr<FB::Npapi::NpapiBrowserHost> npapihost = FB::ptr_cast<FB::Npapi::NpapiBrowserHost>(m_host); if(n

我正在尝试使用NpapiBrowserHost.GetAuthenticationInfo方法从Firebreath插件获取用户/密码

我需要为基于npapi的浏览器(chrome/firefox/opera)执行此操作。这是我的代码:

boost::shared_ptr<FB::Npapi::NpapiBrowserHost> npapihost = 
    FB::ptr_cast<FB::Npapi::NpapiBrowserHost>(m_host);
if(npapihost)
{
        char * username = NULL; uint32_t ulen = 0; 
        char * password = NULL; uint32_t plen = 0;
        NPError err = npapihost->GetAuthenticationInfo("http", 
                                               "xxx.yyy.com", 
                                                80, 
                                                "Basic", 
                                                "Knownnameofrealm", 
                                                &username, &ulen, 
                                                &password, &plen );
boost::共享\u ptr npapihost=
FB::ptr_cast(m_主机);
if(npapihost)
{
char*username=NULL;uint32\u t ulen=0;
char*password=NULL;uint32\u t plen=0;
NPError err=npapihost->GetAuthenticationInfo(“http”,
“xxx.yyy.com”,
80, 
“基本”,
“了解真实世界”,
&用户名(&U),
&密码(&plen);
}

在歌剧中它起作用。在Chrome和Firefox中,它返回err=NPERR\u GENERIC\u ERROR, 和ulen=0,plen=0(用户名,密码-错误的ptr)

此代码从MypluginamePlugin::onPluginReady()执行

如果您成功获取凭据,请发布代码示例


PS Chrome根据Chrome sources尚未在Firefox中实现NPN_GetAuthenticationInfo

我应该使用-1而不是80来表示http(443表示https)

简单地说,FF的密码管理服务将其所有信息存储在hashmap中: 映射条目=((auth.object的键),(具有单用户auth.info的对象))

每个键都是一个字符串,创建如下:(一些专业人员)+(方案)+“:/”+(主机)+“:”+(端口)。
在创建新映射条目时,FF将INTERNET\u DEFAULT\u HTTP\u PORT=80(INTERNET\u DEFAULT\u HTTPS\u PORT=443)替换为-1

在歌剧中,最初一切都很顺利

在Chrome浏览器中,自2009年创建存根以来,未实现端点功能


在IE中,主机不可用。尽管我甚至不必处理登录/密码提取问题,因为默认的CInternetSession(wininet package)构造函数会自动执行此操作。

值得注意的是,这更像是一个npapi问题,而不是firebreath问题,由于该函数只是NPN_GetAuthenticationInfo的一个传递,有关其在FF中如何工作的更多信息,您可以查看以下来源:,自愿在chrome中添加缺少npapi功能的用户可以从以下文件开始: