1

QNetworkAccessManager は、

authenticationRequired (QNetworkReply*, QAuthenticator*)

認証が必要な場合に通知します。これは、基本認証に使用できます。

しかし、サーバーで NTLM 認証を行う Qt プログラムを作成するにはどうすればよいでしょうか。この例はどこにも見つかりませんでした。

4

1 に答える 1

3

これを Qt 4.8 で動作させることはできませんでしたが、Qt 5.1 ではある程度動作します。この場合、QAuthenticator は非常にうまく機能しません。authenticationRequired シグナルを処理するスロットにユーザー名とパスワードを手動で設定する場合:

onAuthenticationRequired (QNetworkReply*, QAuthenticator* auth)
{
    auth->setUser("username");
    auth->setPassword("password");
} 

ただし、現在の Windows ユーザー ログインを使用する場合は、ユーザー名を空の文字列として設定する必要があります。

onAuthenticationRequired (QNetworkReply*, QAuthenticator* auth)
{
    auth->setUser("");
} 

注:このスロットは、Windows ユーザーにアクセス権が付与されている場合でも 4 回呼び出されます。ユーザーが資格情報を提供することになっている場合、これは特にイライラします。さらに、QAuthenticator は、実際に使用されている認証方法を特定するためのパブリック メソッドを提供しません。

于 2013-07-25T12:36:28.587 に答える