WebAssembly アプリでの認証
Blazor WebAssembly アプリでの認証のサポートが更新され、URL のクエリ文字列ではなく履歴状態に依存するようになりました。 その結果、クエリ文字列を介して戻り先 URL を渡す既存のアプリケーションでは、ログインの成功後に元のページにリダイレクトできません。
既存のアプリケーションでは、新しい NavigateToLogin 拡張メソッドを使用する必要があります。これはログイン ページにデータを正しくフローできるためです。
導入されたバージョン
.NET 7
以前の動作
戻り先 URL は、クエリ文字列で ?returnUrl=<<return-url>>
のように指定されていました。
新しい動作
.NET 7 以降では、authentication/login
ページに渡される戻り先 URL とその他のパラメーターは、ページの history.state
エントリを介して渡されます。
破壊的変更の種類
この変更は、バイナリの互換性に影響を与える可能性があります。
変更理由
私たちはクエリ文字列ではなく history.state
の使用に切り替えることにしました。その方が実装が簡単になり、クエリ文字列を介してデータを渡すことに関連した攻撃面の領域を除外できるためです。
推奨アクション
ほとんどのアプリにある RedirectToLogin.razor ファイルを、次のように更新できます。
@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
- Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager (新しい NavigationManagerExtensions.NavigateToLogout メソッドを優先して廃止されます)
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示