Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MSAL/ASP.NET核心-如何检查令牌缓存内容?_C#_Azure_Asp.net Core_Msal_Microsoft Identity Web - Fatal编程技术网

C# MSAL/ASP.NET核心-如何检查令牌缓存内容?

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

在我的ASP.Net核心Mvc机密web应用程序中,我使用的是带有AAD的Microsoft Identity web/Platform,我想称之为下游WebAPI。web app Startup.cs如下所示:

            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
实例