Frage

Ich habe einen WCF-Dienst, der anspruchsbasierte Autorisierung verwendet.

Ich möchte eine Operation mit a zuordnen ClaimsPrincipalPermissionAttribute und die Autorisierungsprüfung wird in meinem Benutzerdefiniert nur einmal ausgelöst ClaimsAuthorizationManager.Allerdings stelle ich fest, dass diese Autorisierungsprüfung zweimal ausgelöst wird;einmal für die URL und dann ein zweites Mal für den Vorgang selbst.

Ich kann zu diesem Thema nicht viele Informationen finden, aber was ich gefunden habe, deutet darauf hin, dass dies beabsichtigt ist.Kann ich dieses Verhalten überschreiben und keine Autorisierung für die URL durchführen, sondern nur eine Autorisierung basierend auf dem Vorgang?

Ich habe kein Interesse an einer Autorisierung auf der Grundlage von URLs und würde es lieber vermeiden, Ansprüche für jede einzelne URL hinzuzufügen, da ich wahrscheinlich viele davon habe und sie sich in Zukunft ändern könnten.

Ich habe zu diesem Thema mehrere Artikel gelesen und Videos von Dominick Baier gesehen, und obwohl ich daraus viel gelernt habe, kann ich immer noch keine Antwort darauf finden.Ist das einfach nicht möglich und ich muss mich nur damit auseinandersetzen, dass ich mich auch anhand der URL autorisieren muss?

War es hilfreich?

Lösung

Sie können dieses Verhalten nicht ändern. Ich habe ein benutzerdefiniertes Anspruchsberechtigungsattribut geschrieben, das verschiedene Anspruchstypen ausgibt.Auf diese Weise konnte ich zwischen dem Aufruf pro Anfrage und dem expliziten Attribut unterscheiden.

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

oder das Thinktecture.IdentityModel-Nuget-Paket.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top