承認:エンドポイント ルーティングのリソースは HttpContext
ASP.NET Core 3.1 でエンドポイント ルーティングを使用する場合、承認に使用されるリソースはエンドポイントです。 この方法は、ルート データ (RouteData) へのアクセスを付与するためには不十分でした。 MVC では以前、エンドポイント (Endpoint) とルート データの両方にアクセスできるようにするため、HttpContext リソースが渡されました。 この変更により、承認に渡されるリソースは常に HttpContext
になります。
導入されたバージョン
ASP.NET Core 5.0
以前の動作
エンドポイント ルーティングと承認ミドルウェア (AuthorizationMiddleware) または [Authorize] 属性を使用する場合、承認に渡されるリソースは一致するエンドポイントです。
新しい動作
HttpContext
がエンドポイント ルーティングから承認に渡されます。
変更理由
HttpContext
からエンドポイントにアクセスできます。 一方で、エンドポイントからルート データなどにアクセスする方法はありませんでした。 エンドポイント以外のルーティングからの機能に不足がありました。
推奨アクション
アプリでエンドポイント リソースが使用される場合は、HttpContext
で GetEndpoint を呼び出して、エンドポイントへのアクセスを継続します。
SetSwitch を使用して以前の動作に戻すことができます。 次に例を示します。
AppContext.SetSwitch(
"Microsoft.AspNetCore.Authorization.SuppressUseHttpContextAsAuthorizationResource",
isEnabled: true);
影響を受ける API
なし
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET