Authentification dans les applications WebAssembly
Nous avons mis à jour la prise en charge de l’authentification dans les applications Blazor WebAssembly de façon à ce qu’elle s’appuie sur l’état de l’historique au lieu des chaînes de requête dans l’URL. Par conséquent, les applications existantes qui passent l’URL de retour via la chaîne de requête ne parviennent pas à rediriger vers la page d’origine après une connexion réussie.
Les applications existantes doivent utiliser la nouvelle méthode d’extension NavigateToLogin, car celle-ci est en mesure de transmettre correctement les données à la page de connexion.
Version introduite
.NET 7
Comportement précédent
L’URL de retour était spécifiée dans la chaîne de requête en tant que ?returnUrl=<<return-url>>
.
Nouveau comportement
À compter de .NET 7, l’URL de retour et d’autres paramètres transmis à la page authentication/login
sont transmis via l’entrée history.state
de la page.
Type de changement cassant
Ce changement peut affecter la compatibilité binaire.
Raison du changement
Nous avons décidé de passer à l’utilisation de history.state
au lieu de la chaîne de requête, car cela simplifie l’implémentation et supprime la zone d’attaque de surface associée à la transmission de données via la chaîne de requête.
Action recommandée
La plupart des applications ont un fichier RedirectToLogin.razor que vous pouvez mettre à jour comme suit :
@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);
}
}
API affectées
- Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager (obsolète en faveur d’une nouvelle méthode NavigationManagerExtensions.NavigateToLogout)
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour