0
votes

Comment puis-je voir quel autorisantAttribute a échoué ASP.NET Core

J'essaie de travailler s'il y a un moyen facile d'obtenir ASP.NET CORE pour enregistrer quel [Autoriser] L'attribut est en panne. J'ai un mélange d'attributs d'autorisation de «rôle» et de «politique», mais chaque fois qu'un seul échoue les journaux indiquent:

 Entrez la description de l'image ici

Évidemment, il s'agit du comportement correct et il ne laisse pas quelqu'un avec des autorisations incorrectes, cependant, si vous avez plusieurs attributs, il est un peu douloureux de devoir aller et à travailler sur lequel un échoué. Si le journal a simplement montré que l'autorisation a échoué pour la stratégie X , ce serait vraiment facile de trouver ce qui échoue.

Est-ce que quelqu'un sait s'il est actuellement possible de faire cela se produire à travers une option que je ne suis pas au courant?

EDIT: Par exemple: Si j'avais [autoriser (stratégie = "stratégie 1")] et [Autoriser (stratégie = "Politique 2") ] et seule "la politique 2" a échoué. J'aimerais voir quelque chose qui me dit que c'était "la politique 2" qui a échoué.

edit: pour toute personne qui traverse toujours cette question, cela a maintenant été mis en œuvre par Microsoft et fait partie de .NET 5.0, voir problème https://github.com/aspnet/aspnetcore/issues/7789


0 commentaires

3 Réponses :


0
votes

Vous pouvez gérer et enregistrer cet intérieur Middlewares xxx

dans votre configuration Starp, xxx


1 commentaires

Merci mais cela ne répond pas à la question. Le "utilisateur" qui a échoué, je ne suis pas intéressé, je suis intéressé par la "politique" qui a échoué (ou une autre condition). Votre solution proposée laisse exactement le même problème, quelle était la condition qui a causé l'échec.



2
votes

pour rôles et de la stratégie , ils sont traduits à des exigences telles que Rolesauthorizequirement ou votre exigence personnalisée comme minimumtagerequirement .

pour Autorisation a échoué. , ceci est enregistré par defaultAuthoriizationervice dans autoriseur , vous ne pouvez pas obtenir le nom exact comme Politique 1 et Politique 2 . Vous pouvez obtenir les conditions requises pour Politique .

Essayez de vérifier si la solution de contournement ci-dessous répond à votre exigence.

  1. implémenter personnalisé defaultautorizationervice XXX

  2. Remplacez-vous intégré defaultAuthoriZationervice XXX


1 commentaires

Merci Tao, on dirait que cela se déplace dans la bonne direction. Encore une honte, le nom de la stratégie n'est pas disponible pour évaluation ici.



1
votes

Microsoft implémente ceci par défaut dans .NET 5.0, voir le problème GITUB associé pour plus de détails et des liens vers PR.

https://github.com/aspnet/aspnetcore/issues/7789


0 commentaires