ASP0001: 認可ミドルウェアが正しく構成されていない
Value | |
---|---|
ルール ID | ASP0001 |
[カテゴリ] | 使用法 |
修正が中断ありか中断なしか | なし |
原因
アプリケーションの起動コードで、UseAuthorization への順序の異なる呼び出しが検出されました。
規則の説明
エンドポイント ルートに対して認可を有効にするには、UseAuthorization
への呼び出しが UseRouting
と UseEndpoints
への呼び出しの間に現れる必要があります。 これがない場合、フォールバック ポリシーが構成されている場合は、すべての要求を承認するために使用されます。
次のコードがあるとします。
app.UseStaticFiles();
app.UseAuthorization();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapDefaultControllerRoute();
});
UseAuthorization
への呼び出しは UseRouting
の前に現れるため、エンドポイントは認識されません。
違反の修正方法
UseAuthorization
と UseRouting
の呼び出しが実行される順序を変更します。
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapDefaultControllerRoute();
});
どのようなときに警告を抑制するか
UseAuthorization
への呼び出しがすべての発信要求に対するフォールバック ポリシーを承認することを目的としている場合、またはエンドポイント ルーティングを使用してルーティングされないリソースを承認することを目的としている場合は、このルールを抑制しても安全です。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
ASP.NET Core