如何找到所有可能的 AdalException.ErrorCode 字符串 属性 值?
How to find the all possible AdalException.ErrorCode string property values?
当您尝试从 Azure Active Directory 获取令牌时,在令牌获取过程中发生错误时会引发异常类型。
异常被调用 AdalException ms docs link here
我在其 属性 之后调用 ErrorCode ms docs link here
但是他们称它为 "error code" 它是一个字符串,可能的值如下:
- "temporarily_unavailable"
- "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...
}
在左侧层次结构的 link 下,点击 AdalError>Fields 的下拉菜单,它应该会显示所有可能性。
Exceptions in ADAL.NET wiki 涵盖了很多此类细节。
要处理的最重要的 error/exception 是 AdalSilentTokenAcquistionException
,其中缓存中的令牌不再有效,需要以交互方式刷新。
我强烈建议为 interaction_required
构建一个强大的错误处理程序的另一个异常(在 ADAL.NET 中,这是一个 AdalClaimsChallengeException
,它可能由于条件访问策略需要AcquireTokenSilent()
方法的额外授权。在这种情况下,如果你可以提示用户,你只需要交互地重复失败的请求。如果你的应用程序无法显示交互,那么你可以捕获 claims
参数错误,发回客户端重新授权。
当您尝试从 Azure Active Directory 获取令牌时,在令牌获取过程中发生错误时会引发异常类型。
异常被调用 AdalException ms docs link here
我在其 属性 之后调用 ErrorCode ms docs link here
但是他们称它为 "error code" 它是一个字符串,可能的值如下:
- "temporarily_unavailable"
- "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...
}
在左侧层次结构的 link 下,点击 AdalError>Fields 的下拉菜单,它应该会显示所有可能性。
Exceptions in ADAL.NET wiki 涵盖了很多此类细节。
要处理的最重要的 error/exception 是 AdalSilentTokenAcquistionException
,其中缓存中的令牌不再有效,需要以交互方式刷新。
我强烈建议为 interaction_required
构建一个强大的错误处理程序的另一个异常(在 ADAL.NET 中,这是一个 AdalClaimsChallengeException
,它可能由于条件访问策略需要AcquireTokenSilent()
方法的额外授权。在这种情况下,如果你可以提示用户,你只需要交互地重复失败的请求。如果你的应用程序无法显示交互,那么你可以捕获 claims
参数错误,发回客户端重新授权。