首页| 论坛| 消息

标题:QT NTLM认证登录问题---关于域用户
作者:draeag
日期:2016-07-04 13:54
内容:

QNetworkAccessManager* m_pNetworkManager = new QNetworkAccessManager(this);
connect(m_pNetworkManager, SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)),
SLOT(slot_authenticationRequired(QNetworkReply*, QAuthenticator*)));
m_pNetworkReply = m_pNetworkManager->post(netRequest,contentByteArray);//发起post请求
void Httpxxx::slot_authenticationRequired(QNetworkReply *reply, QAuthenticator *auth)
{
auth->setUser(m_strUserName);
auth->setPassword(m_strPassWord);
}
非域用户的情况下在发送post请求后,会调用slot_authenticationRequired,为什么域用户的情况下就不再调用了,而是直接用当前登录的域用户进行了验证,想用自己设置的其它用户登录应该如何设置?
官方文档有这么一句话,但不知道如何处理?
在QAuthenticator的说明中:
NTLM version 2
The NTLM authentication mechanism currently supports no incoming or outgoing options.On Windows, if no user has been set,domain\user credentials will be searched for on the local system to enable Single-Sign-On functionality.
这个no user has been set ,如何 进行set ?


#1 [stlcours 07-06 16:10]
天天用QNetworkAccessManager,却从未仔细看过它的使用,原来还有QAuthenticator,还能处理NTLM,真是酷。
看了一下文档,
也许是需要调用setCookieJar QNetworkCookie的setDomain函数
或者需要调用setCache QAbstractNetworkCache的remove函数
你试试,有了结果上来说一声~
#2 [stlcours 07-06 16:19]
另外文档里还提到: One QNetworkAccessManager should be enough for the whole Qt application.
如果你在别处先创建了一个QNetworkAccessManager ,那么也许就会有问题

回复 发表
主题 版块