2015-11-12 18 views
5

Ho un'applicazione ASP.NET che chiama un servizio WCF. Nell'applicazione ASP.NET, faccio una chiamata ad ADFS per eseguire l'autenticazione e posso vedere tutte le affermazioni dell'utente in CurrentPrincipal. Quindi eseguo la chiamata del servizio WCF (wsHttpBinding), ma l'elenco delle attestazioni è vuoto.WCF/WIF - Devo trovare reclami nel back-end?

Quale potrebbe essere il motivo?

+2

WS2007FederazioneHttpBinding? – nzpcmad

risposta

3

Se non sbaglio ci sono diversi modi per ottenere attestazioni in WCF.

Thread.CurrentPrincipal - Semplice e facile da usare ma necessita di alcune impostazioni nella configurazione, che è molto trascurata.

<behaviors> 
    <serviceBehaviors> 
    <behavior name="Test.Services.WifBehavior"> 
     <serviceCredentials useIdentityConfiguration="true" /> 
     <!---Set principalPermissionMode to always to pass the ClaimsIdentity info to the Thread.CurrentPrincipal--> 
     <serviceAuthorization principalPermissionMode="Always"/> 
    </behavior> 
    <serviceBehaviors> 
</behaviors> 

OperationContext.Current.ClaimsPrincipal - Non riesco a ricordare se questo ha bisogno di un po 'di configurazione, ma credo che si può ottenere direttamente dal metodo richiamato.

OperationContext.ServiceSecurityContext.AuthorizationContext.ClaimSets - Create a Custom Authorization Manager for a Service ed è necessario aggiungere in config.

Nota che ho utilizzato Windows Identity Foundation (WIF).

Problemi correlati