我正在尝试使用 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 );
}
在 Opera 中它可以工作。在 Chrome 和 Firefox 中,它返回 err = NPERR_GENERIC_ERROR,并且 ulen = 0,plen = 0(用户名,密码 - 错误的 ptr)。
此代码从 MypluginamePlugin::onPluginReady() 执行。
如果您成功获取凭据,请发布代码示例。
PS Chrome 根据铬源尚未实现 NPN_GetAuthenticationInfo https://code.google.com/p/chromium/issues/detail?id=23928