Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Uitzonderingen in MSAL.NET zijn bedoeld voor app-ontwikkelaars om problemen op te lossen en niet voor weergave aan eindgebruikers. Uitzonderingsberichten worden niet gelokaliseerd.
De verschillende soorten uitzonderingen
| Exception | Description |
|---|---|
MsalException |
Basisklasse voor MSAL-uitzonderingen. |
MsalClientException |
Fouten die zich voordoen in de bibliotheek zelf, bijvoorbeeld een onvolledige configuratie. |
MsalServiceException |
Geeft fouten weer die door de tokenprovider (Microsoft Entra ID) worden doorgegeven. Zie Microsoft Entra fouten. Service niet beschikbaar-fouten (bijvoorbeeld HTTP 500), wat aangeeft dat er een probleem met de service is, hebben de foutcode service_not_available |
MsalUiRequiredException |
Speciale Microsoft Entra fout die aangeeft dat de gebruiker zich interactief moet aanmelden. |
MSAL vangt geen andere uitzondering op. Netwerkproblemen, annuleringen enz. worden doorgegeven aan de applicatie.
MSAL werpt MsalClientException voor zaken die misgaan binnen de bibliotheek (bijvoorbeeld een onjuiste configuratie) en MsalServiceException voor zaken die aan de servicezijde of in de broker misgaan (bijvoorbeeld een geheim is verlopen).
Algemene uitzonderingen
- Authenticatie geannuleerd door de gebruiker (alleen openbare client)
Bij het aanroepen AcquireTokenInteractivewordt een browser of broker aangeroepen om interactie van gebruikers af te handelen. Als de gebruiker dit proces sluit of als deze op de knop Terug van de browser drukt, genereert MSAL een MsalClientException met de foutcode authentication_canceled (MsalError.AuthenticationCanceledError).
Op Android kan deze uitzondering ook optreden als een browser met tabbladen niet beschikbaar is.
- HTTP-uitzonderingen
Van ontwikkelaars wordt verwacht dat ze zelf een retrybeleid implementeren wanneer ze MSAL aanroepen. MSAL maakt HTTP-aanroepen naar de Microsoft Entra-service, en soms kunnen er storingen optreden, bijvoorbeeld dat het netwerk uitvalt of de server overbelast is. Http 5xx-statuscodeantwoorden worden eenmaal opnieuw geprobeerd.
Uitzonderingstypen
Wanneer u uitzonderingen verwerkt, kunt u het uitzonderingstype zelf en het ErrorCode lid gebruiken om onderscheid te maken tussen uitzonderingen. De waarden van ErrorCode zijn constanten van MsalError.
U kunt ook kijken naar de velden van MsalClientException, MsalServiceException, . MsalUiRequiredException
In het geval van MsalServiceException, de fout kan een code bevatten die u kunt vinden in verificatie- en autorisatiefoutcodes.
MsalUiRequiredException
De "UI vereist" is een specialisatie van MsalServiceException met de naam MsalUiRequiredException. Dit betekent dat u een niet-interactieve methode hebt geprobeerd om een token te verkrijgen (bijvoorbeeld AcquireTokenSilent), maar MSAL kan dit niet op de achtergrond doen. dit kan komen doordat:
- u moet zich aanmelden
- u moet toestemming geven
- u moet een multi-factor authentication-ervaring doorlopen.
Om dit te verhelpen roept u een AcquireToken*-methode aan waarbij de gebruiker om invoer wordt gevraagd, bijvoorbeeld AcquireTokenInteractive in openbare clients, leidt u de gebruiker op websites om naar de aanmeldingspagina of retourneert u een 401 in een web-API.
Doorlopende toegangsevaluatie
Zie Hoe u API's voor continue toegangsevaluatie gebruikt in uw toepassingen.
Verwerken van claim-uitdagingsuitzonderingen in MSAL.NET
In sommige gevallen zal uw toepassing, wanneer de Microsoft Entra-tenantbeheerder beleidsregels voor voorwaardelijke toegang heeft ingeschakeld, de uitzonderingen voor claimuitdagingen moeten afhandelen. Dit wordt weergegeven als een MsalServiceException waarvan de Claims-eigenschap niet leeg zal zijn. Als het beleid voor voorwaardelijke toegang bijvoorbeeld een beheerd apparaat (Intune) heeft, ziet de fout er ongeveer als volgt uit AADSTS53000: Your device is required to be managed to access this resource .
Als u de claimvraag wilt afhandelen, moet u de WithClaims(String) methode gebruiken.