Skip To Content ArcGIS for Developers Sign In Dashboard

AuthenticationChallenge Class

(Esri::ArcGISRuntime::AuthenticationChallenge)

Represents an authentication challenge when accessing secured resources. More...

Header: #include <AuthenticationChallenge>
Since: Esri::ArcGISRuntime 100.0
Inherits: Object

Public Functions

~AuthenticationChallenge()
QUrl authenticatingHost() const
AuthenticationChallengeType authenticationChallengeType() const
QUrl authorizationUrl() const
void cancel()
void continueWithClientCertificate(int clientCertificateIndex)
void continueWithCredential(Credential *credential)
void continueWithOAuthAuthorizationCode(const QString &oAuthAuthorizationCode)
void continueWithSslHandshake(bool trust, bool remember)
void continueWithUsernamePassword(const QString &username, const QString &password)
Error error() const
int failureCount() const
Credential *proposedCredential() const
QUrl requestUrl() const
QList<QSslError> sslErrors() const
  • 31 public functions inherited from QObject

Additional Inherited Members

Detailed Description

Represents an authentication challenge when accessing secured resources.

Instances of this class represent an authentication challenge that was raised because a security error was encountered while trying to access a secured network resource. You can connect to the AuthenticationManager::authenticationChallenge signal to handle challenges raised from security errors.

To satisfy the challenge, you need to do one of the following:

  • Call continueWithCredential with a valid credential. The task that issued the challenge will try to connect to the resource using the credential.
  • Call continueWithUsernamePassword() with a valid username and password which is applied to the credential to continue with the request.
  • Call continueWithOAuthAuthorizationCode() with a valid OAuth authorization code which is applied to the credential to continue to authenticate using OAuth.
  • Call continueWithClientCertificate() with the index of the client certificate to use, obtained from AuthenticationManager::clientCertificateInfos which is applied to the credential to continue with the request.
  • Call continueWithSslHandshake() if the challenge was due to an SSL error, such as an untrusted server certificate, and you want to either trust of reject the network request.
  • Call cancel() to cancel the challenge. The task that issued the challenge will fail to connect to the resource and should emit an error signal.

Member Function Documentation

AuthenticationChallenge::~AuthenticationChallenge()

Destructor.

QUrl AuthenticationChallenge::authenticatingHost() const

AuthenticationChallengeType AuthenticationChallenge::authenticationChallengeType() const

QUrl AuthenticationChallenge::authorizationUrl() const

void AuthenticationChallenge::cancel()

Cancels the operation that led to the authentication challenge.

The resource will fail to load and should emit an error signal.

This function is invokable from QML.

void AuthenticationChallenge::continueWithClientCertificate(int clientCertificateIndex)

Attempts to continue with the network transaction with the provided clientCertificateIndex.

This will obtain a client certificate from AuthenticationManager::clientCertificateInfos which is then applied to the proposed credential to continue with the request.

This function is invokable from QML.

void AuthenticationChallenge::continueWithCredential(Credential *credential)

Attempts to continue with the network transaction with the provided credential.

Continuing with a null credential will cause the resource to fail to load.

void AuthenticationChallenge::continueWithOAuthAuthorizationCode(const QString &oAuthAuthorizationCode)

Attempts to continue with the network transaction with the provided oAuthAuthorizationCode.

This will populate the proposed credential with the OAuth authorization code to continue with the request.

This function is invokable from QML.

void AuthenticationChallenge::continueWithSslHandshake(bool trust, bool remember)

Attempts to continue with the network transaction specifying whether to trust the host and remember that decision for future requests.

If requested to remember to trust or not trust, a specific host, a challenge will not be issued for this host again for the app session.

This function is invokable from QML.

void AuthenticationChallenge::continueWithUsernamePassword(const QString &username, const QString &password)

Attempts to continue with the network transaction with the provided username and password.

This will populate the proposed credential with username and password to continue with the request.

This function is invokable from QML.

Error AuthenticationChallenge::error() const

Returns the underlying security error that led to this authentication challenge.

int AuthenticationChallenge::failureCount() const

Credential *AuthenticationChallenge::proposedCredential() const

Returns the credential that is currently being used to access a secured resource.

This could be a pre-configured credential with limited properties already defined for you. This credential can be used to specify the identity through a username/password, or token, and then call continueWithCredential.

QUrl AuthenticationChallenge::requestUrl() const

QList<QSslError> AuthenticationChallenge::sslErrors() const

Returns a list of QSslError when an SslHandshake error has occurred.

This value is only populated when the challenge type is AuthenticationChallengeType::SslHandshake indicating that an SSL error occurred when attempting to access a secured resource.

Inspect these errors or prompt the end user to determine if the request should continue and ignore these errors.


Feedback on this topic?