Appliquer implicitement l'attribut [Authorize] à tous les contrôleurs d'API Web
Ma demande est la configuration où toutes les demandes à l'exception de connexion doit être "autorisés" à l'aide de l'autorisation de l'attribut dans l'API Web. E. g.
[Authorize]
[HttpGet, Route("api/account/profile")]
public ApplicationUser Profile()
{
return userModel;
}
et uniquement le login doit pas autoriser puisque c'est là que vous obtenez le jeton 😉
[AllowAnonymous]
[HttpPost, Route("api/account/login")]
public async Task<IHttpActionResult> Login(LoginViewModel model)
{
....
}
au lieu d'avoir à ajouter de l' [Authorize]
attribuer à l'ENSEMBLE de mes itinéraires, est-il un moyen de le régler à l'échelle mondiale?
source d'informationauteur amcdnl
Vous devez vous connecter pour publier un commentaire.
Vous avez deux options
Contrôleur de niveau par la décoration de votre contrôleur avec autoriser attribut.
Vous pouvez aussi le mettre au niveau mondial, toutes les routes, dans
Register
méthode de WebApiConfig.cs fichierVous pouvez définir la
AuthorizeAttribute
à laWebApiConfig
fichier comme ci-dessous:Maintenant toutes les méthodes de vos contrôleurs d'Api Web aura besoin de l'autorisation. Si vous souhaitez supprimer cette exigence d'un agrément pour une méthode, vous devez ajouter l'attribut
[AllowAnonymous]
comme dans la Connexion méthode d'action.Je voulais juste ajouter quelque chose à d'autres réponses que si vous utilisez
alors vous pouvez aussi injecter toutes les dépendances dans votre attribut s'il est nécessaire