laptop and a wrench

Bogue

OAuthenticationManager is not working as expected in ArcGIS Runtime SDK for Xamarin Forms.

Dernière publication: July 16, 2021 ArcGIS Runtime SDK
Numéro d’ID de bogue BUG-000138488
EnvoiMarch 25, 2021
Dernière modificationJune 5, 2024
S’applique àArcGIS Runtime SDK
Version trouvée100.10
Système d’exploitationWindows OS
Version du système d’exploitation10.0 64 Bit
StatutNon-Reproducible

Informations supplémentaires

This issue is caused by an incorrect OAuth workflow configuration in the client application code, where two separate workflows have been combined: one intended for authenticating specific users and one intended for authenticating applications.

Solution de contournement

User-based authentication

To support user-based authentication with OAuth, the recommended approach is OAuth Authorization Code. In this case the TokenAuthenticationType must be set to OAuthAuthorizationCode. Refer to ArcGIS Developers: ArcGIS Identity for more information.

Example:

var serverInfo = new ServerInfo(new Uri("https://www.arcgis.com/sharing/rest"))

{

  TokenAuthenticationType = TokenAuthenticationType.OAuthAuthorizationCode,

  OAuthClientInfo = new OAuthClientInfo("...", null)

};

Application-based authentication

  • To support application-based authentication with OAuth, it is necessary to use the Client Credential approach with a client ID and client secret. In this case the TokenAuthenticationType must be set to OAuthClientCredentials. Refer to ArcGIS Developers: Application credentials for more information.

Example: 

var serverInfo = new ServerInfo(new Uri("https://www.arcgis.com/sharing/rest"))

{

  TokenAuthenticationType = TokenAuthenticationType.OAuthClientCredentials,

  OAuthClientInfo = new OAuthClientInfo("...", null, "...")

};

Notes:

  • It is not necessary to issue separate REST requests for tokens, instead the ArcGIS Runtime API supports this process automatically via the AuthenticationManager. 
  • If a manual refresh of the token is required, application code should call OAuthTokenCredential.RefreshAsync().
  • Various properties of the credential can be accessed via API properties on OAuthTokenCredential, such as UserName

Étapes pour reproduire

ID de bogue: BUG-000138488

Logiciel:

  • ArcGIS Runtime SDK

Recevoir une notification lorsque le statut d’un bogue change

Télécharger l’application Esri Support

En savoir plus sur ce sujet

Obtenir de l’aide auprès des experts ArcGIS

Contacter le support technique

Télécharger l’application Esri Support

Accéder aux options de téléchargement