Freigeben über


Il nome scompare dopo la selezione in Selezione utenti con un provider di attestazioni personalizzato in SharePoint 2010

Articolo originale pubblicato martedì 28 giugno 2011

Ho riscontrato recentemente un problema che si è rivelato di difficile soluzione e per questo motivo ho pensato di condividere sia il problema che la soluzione. In questo caso era stato sviluppato un provider di attestazioni personalizzato utilizzato come provider predefinito per SPTrustedIdentityTokenIssuer, come descritto all'indirizzo:  https://blogs.technet.com/b/speschka/archive/2010/04/28/how-to-override-the-default-name-resolution-and-claims-provider-in-sharepoint-2010.aspx. In alcuni casi questa soluzione sembra funzionare: dopo aver effettuato una ricerca viene visualizzato l'elenco delle corrispondenze, se ne seleziona una e quindi si fa clic su OK.  In alcuni casi funziona tutto perfettamente: la finestra di dialogo viene chiusa e viene visualizzato il nome risolto nel controllo di digitazione. È inoltre possibile impostare un punto di interruzione nel metodo FillResolve e spostarsi su di esso.

In alcuni casi tuttavia si verifica quanto segue:

  • La finestra di dialogo Selezione utenti si chiude.
  • Il controllo di digitazione è vuoto: nessun elemento visualizzato (risolto o meno).
  • Se si imposta un punto di interruzione su FillResolve, non viene mai rilevato.
  • Se si esaminano i registri ULS, non si riscontrano errori.

In questo caso, sono finalmente riuscito a capire che il provider di attestazioni personalizzato aggiungeva un tipo di attestazione per cui non esisteva un mapping corrispondente in SPTrustedIdentityTokenIssuer. Creava ad esempio un'attestazione di tipo https://schemas.steve.com/foo, ma l'elenco dei mapping delle attestazioni per SPTrustedIdentityTokenIssuer non includeva un mapping per https://schemas.steve.com/foo. Per un esempio di mapping di attestazioni e di come vengono creati, vedere 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. Anziché aggiungere un'attestazione che SharePoint individua come non mappata, in qualche punto della pipeline viene saltato un passaggio e viene lasciata una schermata vuota, senza messaggio di errore. Per questo motivo è necessario molto tempo per individuare il problema.

Per risolvere questo problema è stato ricreato SPTrustedIdentityTokenIssuer aggiungendo un nuovo mapping per il tipo di attestazione che spariva da Selezione utenti. Dopo aver eseguito di nuovo il codice è stato verificato il corretto funzionamento della procedura in modo da confermare il problema e la soluzione.

Questo è un post di blog localizzato. L'articolo originale è disponibile in Name Disappears After Selecting in People Picker with Custom Claims Provider in SharePoint 2010.