Как найти все возможные значения свойства строки AdalException.ErrorCode? - PullRequest
0 голосов
/ 09 октября 2018

Существует тип исключения, возникающий при возникновении ошибки во время получения токена при попытке получить токен из Azure Active Directory.

Исключение называется AdalException мс документыссылка здесь

Я после того, как его свойство называется ErrorCode мс документы здесь ссылка

Однако они называют его "код ошибки", этострока с возможными значениями, такими как:

  • " временно_не недоступно "
  • " user_interaction_required "
  • и т. д...

Из просмотра сборки написано:

// Parameters:
//   errorCode:
//     The error code returned by the service or generated by client. This is the code
//     you can rely on for exception handling.

Не могли бы вы указать мне направление, откуда я мог бы получить все возможные значения?Или это что-то, чье значение является только информационным и уникальным или случайным?

Что я хотел бы сделать, это иметь другую логику, поэтому, скажем, если она временно недоступна, повторите попытку?Если это что-то еще, действуйте соответственно ...

Псевдокод:

catch (AdalException ex)
{                    
     if (ex.ErrorCode == "temporarily_unavailable")
     {
         retry = true;
         retryCount++;
         Thread.Sleep(3000);
     }
     else if (ex.ErrorCode == "foo")
     // rest of the code omitted for brevity...
}

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Исключения в ADAL.NET wiki охватывают большую часть этой детали.

Самая важная ошибка / исключение, которое нужно обработать, - это AdalSilentTokenAcquistionException, в котором токены в вашем кэше больше не действительны и требуют интерактивного обновления.

Другое исключение: я настоятельно рекомендую создать надежный обработчик ошибок для interaction_required (в ADAL.NET это AdalClaimsChallengeException, что может произойти в результате политик условного доступа, требующих дополнительной авторизации на AcquireTokenSilent() методы. В этом случае, если вы можете запросить пользователя, вам просто нужно интерактивно повторить неудачный запрос. Если ваше приложение не может показать взаимодействие, вы можете зафиксировать параметр claims в сообщении об ошибке и отправить его.вернуться к клиенту для повторной авторизации.

0 голосов
/ 09 октября 2018

https://docs.microsoft.com/en-us/dotnet/api/microsoft.identitymodel.clients.activedirectory.adalerror?view=azure-dotnet

По этой ссылке в левой иерархии нажмите раскрывающиеся списки для AdalError> Поля, и она должна показать все возможности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...