Sur cette page

QAuthenticator Class

La classe QAuthenticator fournit un objet d'authentification. En savoir plus...

En-tête : #include <QAuthenticator>
CMake : find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake : QT += network

Remarque : toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

QAuthenticator()
QAuthenticator(const QAuthenticator &other)
~QAuthenticator()
(since 6.11) void clear()
bool isNull() const
QVariant option(const QString &opt) const
QVariantHash options() const
QString password() const
QString realm() const
void setOption(const QString &opt, const QVariant &value)
void setPassword(const QString &password)
void setUser(const QString &user)
QString user() const
bool operator!=(const QAuthenticator &other) const
QAuthenticator &operator=(const QAuthenticator &other)
bool operator==(const QAuthenticator &other) const

Description détaillée

La classe QAuthenticator est généralement utilisée dans les signaux « authenticationRequired() » et « proxyAuthenticationRequired() » des classes « QNetworkAccessManager » et « QAbstractSocket ». Cette classe permet de renvoyer les informations d'authentification requises au socket lors de l'accès à des services nécessitant une authentification.

QAuthenticator prend en charge les méthodes d'authentification suivantes :

  • Basic
  • NTLM version 2
  • Digest-MD5
  • SPNEGO/Negotiate

Options

Outre le nom d'utilisateur et le mot de passe requis pour l'authentification, un objet QAuthenticator peut également contenir des options supplémentaires. La fonction options() permet d'interroger les options entrantes envoyées par le serveur ; la fonction setOption() permet de définir les options sortantes, qui seront traitées lors du calcul d'authentification. Les options acceptées et fournies dépendent du type d'authentification (voir method()).

Les tableaux suivants répertorient les options entrantes connues ainsi que les options sortantes acceptées. La liste des options entrantes n’est pas exhaustive, car les serveurs peuvent inclure des informations supplémentaires à tout moment. La liste des options sortantes est en revanche exhaustive, et aucune option inconnue ne sera traitée ni renvoyée au serveur.

Basic

OptionDirectionTypeDescription
realmEntrantQStringContient le domaine d'authentification, identique à celui de la fonction ` realm()`

Le mécanisme d’authentification Basic ne prend en charge aucune option sortante.

NTLM version 2

Le mécanisme d'authentification NTLM ne prend actuellement en charge aucune option d'entrée ou de sortie. Sous Windows, si aucun paramètre « user » n'a été défini, le système local recherchera les identifiants d'\user s du domaine afin d'activer la fonctionnalité d'authentification unique (Single-Sign-On).

Digest-MD5

OptionDirectionTypeDescription
realmEntrantQStringContient le domaine d'authentification, identique à celui de la fonction realm()

Le mécanisme d'authentification Digest-MD5 ne prend en charge aucune option sortante.

SPNEGO/Negotiate

OptionDirectionTypeDescription
spnSortantQStringFournit un SPN personnalisé.

Ce mécanisme d’authentification ne prend actuellement en charge aucune option pour le trafic entrant.

La propriété « spn » est utilisée sur les clients Windows lorsqu'une bibliothèque SSPI est employée. Si cette propriété n'est pas définie, un SPN par défaut sera utilisé. Le SPN par défaut sous Windows est HTTP/<hostname>.

Les autres systèmes d'exploitation utilisent des bibliothèques GSSAPI. Pour cela, il est supposé que le KDC est configuré et que les informations d'identification peuvent y être récupérées. Le backend utilise toujours HTTPS@<hostname> comme SPN.

Considérations de sécurité

QAuthenticator stocke en interne les identifiants, tels que les noms d’utilisateur et les mots de passe, à l’aide de types de données génériques (QString, QByteArray) qui ne garantissent pas l’effacement sécurisé de leur contenu de la mémoire lors de leur destruction. Les identifiants peuvent persister dans des pages de tas libérées, des vidages de mémoire, des fichiers d’échange ou la mémoire du processus après la destruction ou la purge d’un objet QAuthenticator.

Lorsque l'authentification Basic est négociée, les identifiants sont transmis à l'aide du codage Base64, qui est facilement réversible. L'authentification Basic ne doit être utilisée que sur des connexions chiffrées par TLS. QAuthenticator n'impose pas cette exigence ; il incombe aux applications de garantir la sécurité du transport lorsque l'authentification Basic est utilisée.

QAuthenticator sélectionne la méthode d’authentification la plus forte proposée par le serveur, en suivant un ordre de priorité interne fixe : Negotiate (Kerberos/SPNEGO), NTLM, Digest-MD5 et Basic. L’application ne peut actuellement pas influencer ce choix ni restreindre les méthodes acceptables. Si un serveur ou un proxy ne propose qu’une méthode faible, celle-ci sera utilisée sans notification.

Les applications soumises à des exigences strictes en matière de sécurité des identifiants doivent en tenir compte lorsqu’elles décident comment et où utiliser QAuthenticator.

Voir également QSslSocket.

Documentation des fonctions membres

QAuthenticator::QAuthenticator()

Crée un objet d'authentification vide.

QAuthenticator::QAuthenticator(const QAuthenticator &other)

Crée une copie de other.

[noexcept] QAuthenticator::~QAuthenticator()

Détruit l'objet.

[since 6.11] void QAuthenticator::clear()

Efface toutes les informations d'identification et réinitialise l'objet à son état par défaut non initialisé.

Cette fonction a été introduite dans Qt 6.11.

bool QAuthenticator::isNull() const

Renvoie ` true ` si l'objet n'a pas été initialisé. Renvoie ` false ` si des fonctions membres non constantes ont été appelées, ou si le contenu a été construit ou copié à partir d'un autre objet ` QAuthenticator ` initialisé.

QVariant QAuthenticator::option(const QString &opt) const

Renvoie la valeur associée à l'option opt si celle-ci a été définie par le serveur. Consultez la page Options section pour plus d'informations sur les options entrantes. Si l'option opt n'est pas détectée, une erreur « QVariant » sera renvoyée.

Voir également setOption(), options() et QAuthenticator options.

QVariantHash QAuthenticator::options() const

Renvoie toutes les options entrantes définies dans cet objet ` QAuthenticator ` en analysant la réponse du serveur. Consultez la documentation Options section pour plus d'informations sur les options entrantes.

Voir également option() et QAuthenticator options.

QString QAuthenticator::password() const

Renvoie le mot de passe utilisé pour l'authentification.

Voir aussi setPassword().

QString QAuthenticator::realm() const

Renvoie le domaine nécessitant une authentification.

void QAuthenticator::setOption(const QString &opt, const QVariant &value)

Définit l'option de sortie opt sur la valeur value. Consultez la page Options section pour plus d'informations sur les options de sortie.

Voir également options(), option() et QAuthenticator options.

void QAuthenticator::setPassword(const QString &password)

Définit l'password utilisé pour l'authentification.

Voir également password() et QNetworkAccessManager::authenticationRequired().

void QAuthenticator::setUser(const QString &user)

Définit l'user utilisé pour l'authentification.

Voir également user() et QNetworkAccessManager::authenticationRequired().

QString QAuthenticator::user() const

Renvoie l'utilisateur utilisé pour l'authentification.

Voir également setUser().

bool QAuthenticator::operator!=(const QAuthenticator &other) const

Renvoie « true » si cet authentificateur est différent de « other » ; sinon, renvoie « false ».

QAuthenticator &QAuthenticator::operator=(const QAuthenticator &other)

Attribue le contenu de ` other ` à cet authentificateur.

bool QAuthenticator::operator==(const QAuthenticator &other) const

Renvoie « true » si cet authentificateur est identique à « other » ; sinon, renvoie « false ».

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.