| Número de ID do Erro |
BUG-000138488 |
| Enviado | March 25, 2021 |
| Última Modificação | June 5, 2024 |
| Aplica-se à | ArcGIS Runtime SDK |
| Versão encontrada | 100.10 |
| Sistema Operacional | Windows OS |
| Versão do Sistema Operacional | 10.0 64 Bit |
| Status | Non-Reproducible
Esse problema não foi reproduzível quando testado pela equipe de desenvolvimento. Os problemas podem receber esse status quando não podem ser reproduzidos ou não são mais relevantes em uma versão de desenvolvimento do software, mas uma correção específica não foi instalada para resolver o problema. A seção Informações Adicionais do problema pode conter mais explicações.
|
Informações Adicionais
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.
Solução Provisória
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
Etapas para Reproduzir