C# MSAL/ASP.NET核心-如何检查令牌缓存内容?
在我的ASP.Net核心Mvc机密web应用程序中,我使用的是带有AAD的Microsoft Identity web/Platform,我想称之为下游WebAPI。web app Startup.cs如下所示:C# MSAL/ASP.NET核心-如何检查令牌缓存内容?,c#,azure,asp.net-core,msal,microsoft-identity-web,C#,Azure,Asp.net Core,Msal,Microsoft Identity Web,在我的ASP.Net核心Mvc机密web应用程序中,我使用的是带有AAD的Microsoft Identity web/Platform,我想称之为下游WebAPI。web app Startup.cs如下所示: services.AddMicrosoftIdentityWebAppAuthentication(Configuration) .EnableTokenAcquisitionToCallDownstreamApi(new str
services.AddMicrosoftIdentityWebAppAuthentication(Configuration)
.EnableTokenAcquisitionToCallDownstreamApi(new string[] { Configuration["ConfigSection:ConfigSectionScopes"] })
.AddInMemoryTokenCaches();
当用户登录时,如果我正确理解了他们的访问令牌(在登录时获取的,也包括请求访问令牌的身份验证代码流),则会将其存储在InMemoryTokenCache中
如何从MVC控制器访问登录用户的令牌缓存?我可以通过ITokenAcquisition
和GetAccessTokenForUserAsync
(提供作用域)成功获取令牌,但我想检查缓存以确定令牌是否存在,以及用户是否存在其他令牌。我尝试了var accounts=wait app.GetAccountsAsync()
但该值始终为空。将IMsalTokenCacheProvider
和IMemoryCache
注册到IOC容器中
在控制器中,您可以轻松地拾取这两个信息,如下所示:
公共类WeatherForecastController:ControllerBase
{
私有只读IMsalTokenCacheProvider\u cacheProvider;
专用只读IMemoryCache\u缓存;
公共WeatherForecastController(IMsalTokenCacheProvider缓存提供程序,IMemoryCache缓存)
{
_cacheProvider=cacheProvider;
_缓存=缓存;
}
...
}
从这两个方面来看,您似乎无法从IMsalTokenCacheProvider
中提取太多价值,因此我建议继续使用IMemoryCache
实例