Веб-приложение Blazor .NET 8: как правильно получить доступ к ProtectedLocalStorage после NavigationManager.NavigateTo()C#

Место общения программистов C#
Ответить
Anonymous
 Веб-приложение Blazor .NET 8: как правильно получить доступ к ProtectedLocalStorage после NavigationManager.NavigateTo()

Сообщение Anonymous »

После реализации логики входа (аутентификация на основе JWT) я хочу перенаправить на ReturnUrl, если он существует. ReturnUrl имеет атрибут Authorize, но при выполнении GetAuthenticationStateAsync() значение protectedLocalStorage становится нулевым после выполнения NavigationManager.NavigateTo().
Это соответствующий код для входа в систему.

Код: Выделить всё

await protectedLocalStorage.SetAsync("authToken", token);
NavigationManager.NavigateTo(ReturnUrl ?? "");
И я пытаюсь получить protectedLocalStorage в GetAuthenticationStateAsync() вот так

Код: Выделить всё

result = await protectedLocalStorage.GetAsync("authToken"); //protectedLocalStorage is null after the redirect
Я отключил предварительную отрисовку в App.razor, и она работает нормально, за исключением попыток перенаправления на авторизованный компонент

Код: Выделить всё

private IComponentRenderMode? RenderModeForPage => HttpContext.Request.Path.StartsWithSegments("/Account") ? null : new InteractiveServerRenderMode(prerender: false);
Если я обычно перехожу к авторизованному компоненту, щелкая ссылку или вводя URL-адрес после входа в систему, он работает правильно. Это происходит только после использования функции NavigationManager.NavigateTo

Подробнее здесь: https://stackoverflow.com/questions/792 ... ter-naviga
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»