Name verschwindet nach Auswahl in der Personenauswahl mit einem benutzerdefinierten Anspruchsanbieter in SharePoint 2010

Veröffentlichung des Originalartikels: 28.06.2011

Ich bin vor kurzem auf ein Problem gestoßen, das sich als schwierig nachzuvollziehen erwies, weshalb ich es hier samt Lösung vorstellen möchte. In diesem Fall wurde ein benutzerdefinierter Anspruchsanbieter entwickelt, der für das SPTrustedIdentityTokenIssuer-Objekt als Standardanspruchsanbieter verwendet wird, wie im Folgenden beschrieben: https://blogs.technet.com/b/speschka/archive/2010/04/28/how-to-override-the-default-name-resolution-and-claims-provider-in-sharepoint-2010.aspx. Es scheint in manchen Fällen zu funktionieren. Dann können Sie ein Element suchen, woraufhin die Liste der Treffer angezeigt wird. Sie können einen auswählen und auf die Schaltfläche OK klicken. In anderen Fällen funktioniert alles perfekt. Das Dialogfeld wird ausgeblendet, und Sie sehen den aufgelösten Namen im Eingabesteuerelement. Darüber hinaus können Sie auch einen Haltepunkt für die FillResolve-Methode festlegen und diese schrittweise durchlaufen.

In anderen Fällen ist das Verhalten wie folgt:

  • Das Dialogfeld zur Personenauswahl wird geschlossen.
  • Das Eingabesteuerelement ist leer - nichts (weder aufgelöst noch sonst wie) wird angezeigt.
  • Wenn Sie für die FillResolve-Methode einen Haltepunkt festlegen, wird dieser nicht beachtet.
  • Wenn Sie die ULS-Protokolle überprüfen, werden keine Fehler angezeigt.

Was ich bei diesem Fall letztlich feststellte, war, dass der benutzerdefinierte Anspruchsanbieter einen Anspruchstyp hinzufügte, der im SPTrustedIdentityTokenIssuer-Objekt keine entsprechende Zuordnung hatte. Erstellt wurde beispielsweise ein Anspruch, dessen Typ https://schemas.steve.com/foo war, doch die Liste von Anspruchszuordnungen für das SPTrustedIdentityTokenIssuer-Objekt enthielt keine Zuordnung für https://schemas.steve.com/foo (ein Beispiel für Anspruchszuordnungen und ihre Erstellung finden Sie unter https://blogs.technet.com/b/speschka/archive/2010/02/17/creating-both-an-identity-and-role-claim-for-a-sharepoint-2010-claims-auth-application.aspx). Anstatt also einen Anspruch hinzuzufügen, von dem SharePoint weiß, das er nicht zugeordnet ist, löst sich dieser Anspruch praktisch in Luft auf (leerer Bildschirm, keine Fehlermeldung). Aus diesem Grund kann es so lange dauern, den Fehler zu ermitteln.

Bei diesem Problem gestalteten wir letztlich das SPTrustedIdentityTokenIssuer-Objekt so um, dass eine neue Zuordnung für den Anspruchstyp hinzugefügt wurde, der aus der Personenauswahl verschwand. Wir führten den Code erneut aus, woraufhin alles ordnungsgemäß funktionierte, wodurch Problem und Lösung bestätigt wurden.

Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter Name Disappears After Selecting in People Picker with Custom Claims Provider in SharePoint 2010