| Número de ID del error |
BUG-000138488 |
| Enviado | March 25, 2021 |
| Última modificación | June 5, 2024 |
| Relacionado con | ArcGIS Runtime SDK |
| Versión encontrada | 100.10 |
| Sistema operativo | Windows OS |
| Versión de sistema operativo | 10.0 64 Bit |
| Estado | Non-Reproducible
Este problema no se pudo reproducir cuando lo probó el equipo de desarrollo. Los problemas pueden recibir este estado cuando no se pueden reproducir o ya no son relevantes en una versión de desarrollo del software, pero no se ha instalado una solución específica para solucionar el problema. La sección Información adicional del problema puede contener más explicaciones.
|
Información adicional
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.
Solución alternativa
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
Pasos para reproducir