2017-06-07 8 views
0

iOSアプリケーション用のエラーハンドラを作成しようとしており、Azure ADトークンサービスのHTTPエラーコードに基づいて、 (STS)。たとえば、HTTP 429を取得した場合、リクエストを再試行しないことがわかっています.HTTP 500を取得した場合、再試行を選択することがあります。Azure ADから送信されたHTTPエラーコードをADAL Objective-Cを使用して抽出する方法

ADAL Objective Cで提供されているADエラーからこの情報を抽出するにはどうすればよいですか?

答えて

1

ライブラリを使用しているときにHTTPエラーコードを直接使用することはお勧めできません。アプリケーションの次のステップを決定するために使用する必要があるADALエラーコードを提供します。これらは、HTTPエラーと、ライブラリが使用できる1つのNSErrorオブジェクトにスローされる可能性があるその他のエラーをラップします。

あなたはADAuthenticationErrorDomainのエラードメインをチェックして、私たちは、エラーが発生する可能性があります方法の説明と一緒にSDKのADErrorCodes.hヘッダファイルでこのエラーコードのリストを維持するようにAD_ERROR_USER_INPUT_NEEDED

としてエラーコードに一致している必要があります:https://github.com/AzureAD/azure-activedirectory-library-for-objc/blob/dev/ADAL/src/public/ADErrorCodes.h

は、あなたのコードでこれらのエラーをキャッチするには、次のパターンを使用します。

[authContext acquireTokenSilentWithResource:... 
      completionBlock:^(ADAuthenticationResult *result) { 

if (!result.error) { 

// normal program flow 

} else { 

    if ([result.error.domain isEqual:ADAuthenticationErrorDomain] && result.error.code == AD_ERROR_USER_INPUT_NEEDED) { 

      // Handle user input needed error 

     } 

    else if ([result.error.domain isEqual:ADAuthenticationErrorDomain] && result.error.code == AD_ERROR_SERVER_WRONG_USER) { 

      // Handle user returned by the server 
      //does not match the the user identifier error 

      } 
}]; 
関連する問題