我们有一个应用程序,可以通过 Azure 文件列出文件夹中的文件。当我们使用C#方法时:
Directory.GetFiles(@"\\account.file.core.windows.net\xyz")
Run Code Online (Sandbox Code Playgroud)
当有 2000 个文件时,大约需要一分钟。
如果我们使用 CloudStorageAccount 执行相同操作:
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileDirectory directory = fileClient.GetShareReference("account").GetRootDirectoryReference().GetDirectoryReference("abc");
Int64 totalLength = 0;
foreach (IListFileItem fileAndDirectory in directory.ListFilesAndDirectories())
{
CloudFile file = (CloudFile)fileAndDirectory;
if (file == null) //must be directory if null
continue;
totalLength += file.Properties.Length;
}
Run Code Online (Sandbox Code Playgroud)
它会返回所有文件,但大约需要 10 秒。为什么性能会有如此大的差异?
我们有 Azure AD B2C 设置来使用身份体验框架,并且在登录/注册时进行 REST 调用以通过 Azure 函数获得额外的安全凭据声明。这工作正常。
当我们通过 Azure AD B2C 通过 Refresh_Token 请求访问/Id 令牌时,看起来我们获得了相同的令牌,并且它不会调用 REST API 来获取最新更新的令牌声明。是否可以更改此用户旅程?
是否有另一种解决方案无需再次登录即可刷新令牌以获取最新更新?
(我们可以在代码中解决这个问题,而不是使用令牌,但出于各种原因,我们想先探索一下)。