ADAL.NET-为什么从API到API验证OnBehalfOf时需要AcquireTokenAsync?
使用ADAL.NET获取访问令牌的规范模式如下所示:ADAL.NET-为什么从API到API验证OnBehalfOf时需要AcquireTokenAsync?,.net,azure-active-directory,adal,.net,Azure Active Directory,Adal,使用ADAL.NET获取访问令牌的规范模式如下所示: try { result = await authContext.AcquireTokenSilentAsync(graphResourceId, clientId); } catch (AdalException adalException) { if (adalException.ErrorCode == AdalError.FailedToAcquireTokenSilently || adalException.ErrorCod
try
{
result = await authContext.AcquireTokenSilentAsync(graphResourceId, clientId);
}
catch (AdalException adalException)
{
if (adalException.ErrorCode == AdalError.FailedToAcquireTokenSilently || adalException.ErrorCode == AdalError.UserInteractionRequired)
{
result = await authContext.AcquireTokenAsync(graphResourceId,
clientCred,
userAssertion);
}
}
据推测,
AcquireTokenSilentAsync
尝试在没有用户交互的情况下检索令牌,而AcquireTokenAsync
提示用户获得权限。然而,这个函数是在一个试图调用另一个Web API的Web API中调用的,因此根本没有办法提示用户获得权限。我用哪一个?我需要同时使用这两个吗?通常,您只需使用第二个(带有userAssertion),因为这是WebAPI中的全部内容—调用您的客户端用户的传入令牌。请注意,此API不会提示用户使用不同的PlatfromParameters签名。此API将用一个指向此API的传入令牌交换指向此API需要调用的API的令牌。通常,您只需使用第二个令牌(带有userAssertion),因为这是WebAPI中的全部内容—调用您的客户端用户的传入令牌。请注意,此API不会提示用户使用不同的PlatfromParameters签名。此API将用一个指向此API的传入令牌交换指向此API需要调用的API的令牌。好的,很高兴知道-因此我可以单独使用AquireTokenAsync
,并且AuthenticationContext
仍将查看缓存中是否存在该令牌?您可以查看我的文章:它应该如果可用,从缓存中返回令牌OK这很好知道-这样我就可以单独使用AquireTokenAsync
,并且AuthenticationContext
仍会在缓存中查找并使用令牌(如果存在)?您可以查看我的文章主题:如果可用,它应该从缓存中返回令牌