.NET Core MVCで認証/承認を学んでいます。
「Admin」だけがアクセスできるコントローラを作成しようとしていますが、次のエラーが発生します。
リクエストの処理中に未処理の例外が発生しました。
InvalidOperationException:「Admin」という名前のAuthorizationPolicyが見つかりませんでした。
これが私のコードです。私は何をすべきか?
[HttpGet("~/Test")]
[Authorize("Admin")]
public async Task<string> MyMethod()
{
return await Task<string>.Run(() => "Hello Admin");
}
startup.csで一致ポリシーを定義できます
services.AddAuthorization(options =>
{
options.AddPolicy("Admin",
authBuilder =>
{
authBuilder.RequireRole("Administrators");
});
});
authBuilderには他のメソッドがあり、ポリシーベースの承認を使用してクレームまたは特定のユーザー名またはカスタムルールを要求し、スタートアップの中心的な場所からルールを制御できます https://docs.asp.net/en/latest /security/authorization/policies.html
ドキュメント here に従って、Authorization属性を正しく追加していません。これが正しい方法です。
[HttpGet("~/Test")]
[Authorize(Roles ="Admin")]
public async Task<string> MyMethod()
{
return await Task<string>.Run(() => "Hello Admin");
}