J'apprends l'authentification/autorisation dans .NET Core MVC.
J'essaie de créer un contrôleur qui n'est accessible que par "Admin", mais j'obtiens l'erreur suivante.
Une exception non gérée s'est produite lors du traitement de la demande.
InvalidOperationException: le AuthorizationPolicy nommé: "Admin" est introuvable.
Voici mon code. Que devrais-je faire?
[HttpGet("~/Test")]
[Authorize("Admin")]
public async Task<string> MyMethod()
{
return await Task<string>.Run(() => "Hello Admin");
}
vous pouvez définir la politique de correspondance dans Startup.cs
services.AddAuthorization(options =>
{
options.AddPolicy("Admin",
authBuilder =>
{
authBuilder.RequireRole("Administrators");
});
});
l'authBuilder dispose d'autres méthodes, vous pouvez exiger des revendications ou des noms d'utilisateur spécifiques ou des règles personnalisées à l'aide d'une autorisation basée sur des stratégies et contrôler les règles à partir d'un emplacement central dans le démarrage https://docs.asp.net/en/latest /security/authorization/policies.html
Conformément à la documentation ici , vous n'avez pas ajouté correctement l'attribut d'autorisation. C'est la bonne façon de procéder.
[HttpGet("~/Test")]
[Authorize(Roles ="Admin")]
public async Task<string> MyMethod()
{
return await Task<string>.Run(() => "Hello Admin");
}