Test case 1: void NetworkAccessManager::authenticationRequired(QNetworkReply *reply, QAuthenticator *auth) { } Causes error response right after. Request created NetworkAccessManager::requestFinished reply: QNetworkReplyHttpImpl(0x64c63c8) Status: 401 "Cache-Control" : "private" "Content-Type" : "text/html; charset=utf-8" "Server" : "Microsoft-IIS/7.5" "WWW-Authenticate" : "Negotiate, NTLM" "Date" : "Fri, 13 Sep 2013 09:05:43 GMT" "Content-Length" : "6476" Test case 2: void NetworkAccessManager::authenticationRequired(QNetworkReply *reply, QAuthenticator *auth) { auth->setUser(""); } void NetworkAccessManager::authenticationRequired(QNetworkReply *reply, QAuthenticator *auth) { auth->setUser(""); auth->setPassword(""); } Setting the user name to empty string triggers NTML SSPI authentication. Signal authenticationRequired is emitted 4 times for each QNetworkReply (HTTPS GET request) after which they are completed successfully. NetworkAccessManager::requestFinished reply: QNetworkReplyHttpImpl(0x64b2998) Status: 200 "Content-Type" : "text/html" "Content-Encoding" : "gzip" "Vary" : "Accept-Encoding" "Last-Modified" : "Wed, 10 Apr 2013 07:06:54 GMT" "Accept-Ranges" : "bytes" "ETag" : ""07b33fbb935ce1:0"" "Server" : "Microsoft-IIS/7.5" "Persistent-Auth" : "true" "Date" : "Fri, 13 Sep 2013 09:10:00 GMT" Test case 3: void NetworkAccessManager::authenticationRequired(QNetworkReply *reply, QAuthenticator *auth) { auth->setUser(""); auth->setPassword("WRONG"); } Setting the user name to empty string and faulty password triggers NTML SSPI authentication. Signal authenticationRequired is only once for each QNetworkReply (HTTPS GET request) after which they are completed successfully. NetworkAccessManager::requestFinished reply: QNetworkReplyHttpImpl(0x64b2998) Status: 200 "Content-Type" : "text/html" "Content-Encoding" : "gzip" "Vary" : "Accept-Encoding" "Last-Modified" : "Wed, 10 Apr 2013 07:06:54 GMT" "Accept-Ranges" : "bytes" "ETag" : ""07b33fbb935ce1:0"" "Server" : "Microsoft-IIS/7.5" "Persistent-Auth" : "true" "Date" : "Fri, 13 Sep 2013 09:10:00 GMT" Test case 4: void NetworkAccessManager::authenticationRequired(QNetworkReply *reply, QAuthenticator *auth) { auth->setUser("WRONG"); auth->setPassword(""); } Setting the user name to faulty value and setting the password as empty causes 401 response from the web server and authentication required signal is emitted once more. 2013-09-13 09:24:40.696 /gis/ - 401 - -1073741715 6981 896 - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) demobrowser/0.1 Safari/537.21" - "HTTP/1.1" "https" GET "NTLM "