Udostępnij za pośrednictwem


Uwierzytelnianie w aplikacjach zestawu WebAssembly

Zaktualizowaliśmy obsługę uwierzytelniania w aplikacjach zestawu WebAssembly platformy Blazor, aby polegać na stanie historii zamiast ciągów zapytania w adresie URL. W związku z tym istniejące aplikacje, które przekazują zwracany adres URL za pośrednictwem ciągu zapytania, nie będą przekierowywać z powrotem do oryginalnej strony po pomyślnym zalogowaniu.

Istniejące aplikacje powinny używać nowej NavigateToLogin metody rozszerzenia, ponieważ może prawidłowo przepływać dane do strony logowania.

Wprowadzona wersja

.NET 7

Poprzednie zachowanie

Zwracany adres URL został określony w ciągu zapytania jako ?returnUrl=<<return-url>>.

Nowe zachowanie

Począwszy od platformy .NET 7, zwracany adres URL i inne parametry przekazywane do authentication/login strony są przekazywane za pośrednictwem history.state wpisu strony.

Typ zmiany powodującej niezgodność

Ta zmiana może mieć wpływ na zgodność binarną.

Przyczyna wprowadzenia zmiany

Postanowiliśmy przełączyć się na użycie history.state zamiast ciągu zapytania, ponieważ upraszcza implementację i usuwa obszar ataków powierzchniowych skojarzony z przekazywaniem danych przez ciąg zapytania.

Większość aplikacji ma plik RedirectToLogin.razor , który można zaktualizować w następujący sposób:

@inject NavigationManager Navigation
@using Microsoft.AspNetCore.Components.WebAssembly.Authentication
@using Microsoft.Extensions.Options

@inject IOptionsSnapshot<RemoteAuthenticationOptions<ApiAuthorizationProviderOptions>> Options
@code {

    protected override void OnInitialized()
    {
        Navigation.NavigateToLogin(Options.Get(Microsoft.Extensions.Options.Options.DefaultName).AuthenticationPaths.LogInPath);
    }
}

Dotyczy interfejsów API

Zobacz też