我无法使用带有userTokenCache的ConfidentialClientClientApplicationBuilder。
示例中的代码看起来像这样,但是此代码现在已过时,我应该使用ConfidentialClientApplicationBuilder。
ConfidentialClientApplication app;
var request = httpContext.Request;
var currentUri = UriHelper.BuildAbsolute(request.Scheme, request.Host, request.PathBase, _azureAdOptions.CallbackPath ?? string.Empty);
var credential = new ClientCredential(_azureAdOptions.ClientSecret);
TokenCache userTokenCache = _tokenCacheProvider.GetCache(httpContext, claimsPrincipal, authenticationProperties, signInScheme);
string authority = $"{_azureAdOptions.Instance}{_azureAdOptions.TenantId}/";
app = new ConfidentialClientApplication(_azureAdOptions.ClientId, authority, currentUri, credential, userTokenCache, null);
return app;
ConfidentialClientApplicationBuilder代码
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create(_azureAdOptions.ClientId)
.WithAuthority(authority)
.WithRedirectUri(currentUri)
.WithCertificate(clientCertificate)
.Build();
现在做的有些不同。
您单独初始化TokenCache实现,并将其附加到应用程序对象。请参阅this line以供参考。
强烈建议您研究如何最好地为MSAL实施令牌缓存。 TokenCacheProviders文件夹具有实现。