ProtectedBrowserStorage 会抛出“在密钥环中未找到密钥”的错误

问题描述 投票:0回答:1

这超出了我的知识库。 我有一个在 Azure 应用服务中运行的 .Net 8 Blazor Web 服务器应用程序。 我必须使用 Oath 令牌访问外部 api。 我将该令牌(和刷新令牌)存储在本地存储中。 我有一位用户刚刚开始收到错误。 当代码尝试从本地存储获取令牌时,它会抛出错误“在密钥环中找不到密钥 {guid}。”
enter image description here

我发现的有关此错误的所有内容都与 IIS 相关,但这是一个 Azure 应用服务。

在此之前,他使用该应用程序一切顺利。 我让他清除缓存并进入外部 api 并撤销任何令牌以强制应用程序获取新的令牌。 没有解决问题。

这是代码的相关部分。 我在构造函数中注入

private ProtectedLocalStorage LocalStorage

public async Task GetBearerTokenAsync(string? code)
{
    var adobeToken = string.Empty;
    var baseURI = NavManager.BaseUri.Trim('/');
    try
    {
        adobeToken = (await LocalStorage.GetAsync<string>("token").ConfigureAwait(false)).Value;
        if (adobeToken == null)
        {
            Logger.LogInformation($"GET Token for {Globals.UserEmail} was null.");
        }
    } 
    catch (Exception ex) 
    {
       Logger.LogError(ex.Message);
        throw new Exception(ex.Message, ex);
    }

它在

LocalStorage.GetAsync<string>("token")
抛出错误。 没有其他人受到影响! 呃。

我确信我遗漏了一些信息,所以请告诉我您还需要什么,我会更新问题。

c# local-storage blazor-server-side
1个回答
0
投票

我最初没有意识到这还涉及几个虚拟桌面。 我们的理论如下:我们认为 VD 共享相同的用户“状态”。由于滚动更新策略,一个 VD 比另一个 VD 落后一个或多个版本。 后面的 VD 是无法访问密钥环的 VD。 我们认为 Windows 加密中的某些内容在版本之间发生了变化,并且一个版本无法解密另一个版本加密的内容。 一旦所有更新推出,我们就会确定,但与此同时,我将关闭这篇文章。

© www.soinside.com 2019 - 2024. All rights reserved.