Comment désactiver l'autorisation de réclamation par demande (basée sur une URL) dans WCF ?

StackOverflow https://stackoverflow.com//questions/20007539

Question

J'ai un service WCF qui utilise une autorisation basée sur les revendications.

Ce que je veux faire, c'est attribuer une opération avec un ClaimsPrincipalPermissionAttribute et je n'ai le déclenchement de la vérification d'autorisation qu'une seule fois dans ma personnalisation ClaimsAuthorizationManager.Cependant, je constate que ce contrôle d'autorisation est déclenché deux fois ;une fois pour l'URL puis une seconde fois sur l'opération elle-même.

Je ne trouve pas beaucoup d'informations sur ce sujet, mais ce que j'ai trouvé indique que c'est intentionnel.Est-il possible pour moi d'écraser ce comportement et de n'effectuer aucune autorisation sur l'URL, mais uniquement une autorisation basée sur l'opération ?

Je n'ai aucun intérêt à autoriser en fonction des URL et je préférerais vraiment éviter d'ajouter des revendications pour chaque URL, car j'en ai probablement beaucoup et elles pourraient changer à l'avenir.

J'ai lu plusieurs articles et vu des vidéos de Dominick Baier sur ce sujet, et même si j'en ai beaucoup appris, je n'arrive toujours pas à trouver de réponse à cette question.N'est-ce tout simplement pas possible et je dois également devoir autoriser en fonction de l'URL ?

Était-ce utile?

La solution

Vous ne pouvez pas modifier ce comportement. Ce que j'ai fait, c'est écrire un attribut d'autorisation de revendications personnalisé qui émet différents types de revendications.De cette façon, j'ai pu faire la distinction entre l'invocation par requête et l'attribut explicite.

https://github.com/thinktecture/Thinktecture.IdentityModel.45/tree/master/IdentityModel/Thinktecture.IdentityModel/Authorization

ou le package nuget Thinktecture.IdentityModel.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top