首页 > 解决方案 > 带有 userTokenCache 的 ConfidentialClientApplicationBuilder

问题描述

我无法将 ConfidentialClientApplicationBuilder 与 userTokenCache 一起使用。

示例中的代码看起来像这样,但此代码现在已过时,我应该使用 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;

机密ClientApplicationBuilder 代码

IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
                       .Create(_azureAdOptions.ClientId)
                       .WithAuthority(authority)
                       .WithRedirectUri(currentUri)
                       .WithCertificate(clientCertificate)
                       .Build();

标签: msal

解决方案


它现在做的有点不同。

您单独初始化 TokenCache 实现并将其附加到应用程序对象。请参阅此行以供参考。

强烈建议您研究如何最好地为 MSAL 实现令牌缓存。TokenCacheProviders文件夹有实现。


推荐阅读