部署到 Azure 后 Blazor webassembly pwa 会话存储不持久

Blazor webassembly pwa session storage not persisting after deployment to Azure

我正在本地开发一个 Blazor webassembly pwa 运行 该项目会将用户存储在会话存储中并将它们保存在那里。

但是当我部署到 Azure(linux 应用程序服务)时,session/local 存储不会持久存在。因此,当导航到另一个页面(在我的应用程序中)或刷新页面时,oidc.user 变量将从会话存储中删除,因此我的用户已注销。

所以真正的问题是:为什么我的会话存储在本地工作,但它会在重定向后删除 oidc.user 密钥对,导致用户注销。

Exactly, that is my problem. It does get stored for about half a second something like oidc.user etc en then after a redirect or navigating to another page within my application its no longer there. Because of that my user now is logged out. This problem only is here after deploying, running it locally works.

似乎会话 cookie 在发出请求后立即被删除。注意:Cookie 会话 ID 会在每次请求时发送到服务器。

这可能只是猜测,但你最好尝试一下...

将以下代码添加到您的 CongiureServices:

   services.AddDistributedMemoryCache();

    services.AddSession(options =>
    {
        options.IdleTimeout = TimeSpan.FromSeconds(600);
        options.Cookie.HttpOnly = true;
        options.Cookie.IsEssential = true;
    });

app.UseSession(); 在 Configure 方法中,紧接在 app.UseEndpoints(endpoints =>

之上

希望这能奏效...

注意:AuthenticationStateProvider 与您遇到的问题无关。