| Numéro d’ID de bogue |
BUG-000138488 |
| Envoi | March 25, 2021 |
| Dernière modification | June 5, 2024 |
| S’applique à | ArcGIS Runtime SDK |
| Version trouvée | 100.10 |
| Système d’exploitation | Windows OS |
| Version du système d’exploitation | 10.0 64 Bit |
| Statut | Non-Reproducible
Ce problème n’a pas pu être reproduit au cours des tests réalisés par l’équipe de développement. Ce statut peut être attribué aux problèmes qui sont impossibles à reproduire ou qui ne sont plus d’actualité dans une version de développement du logiciel, alors qu’aucun correctif spécifique n’a été installé pour résoudre le problème. Pour d’autres explications, reportez-vous à la section Informations supplémentaires correspondant au problème.
|
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