Domanda

Quello che voglio fare è:

1) autenticare il client per la prima chiamata rende al servizio WCF, questo sarà su una base per-utente piuttosto che una base per-applicazione.

2) Controllare il client è autorizzato ad effettuare la chiamata.

3) Per le successive chiamate a solo autorizzare, con autenticazione essendo già stato fatto nel passaggio 1 per una chiamata precedente.

o

Se il client è connesso a una diversa istanza del servizio per un motivo o la "stretta di mano" è rotto a ri-autenticazione.

Spero che questo ha un senso, questo avviene in modo implicito in WCF utilizzando ad esempio nome utente e l'autenticazione e l'autorizzazione password o fare I / c'è un modo per scrivere qualcosa su misura? Essenzialmente questo è per l'efficienza.

Molte grazie, Fugu

È stato utile?

Soluzione

Questo è chiamato contesto di sicurezza (o una sessione di sicurezza) ed è possibile con la sicurezza dei messaggi. L'unica limitazione è che la sessione viene gestita tra un'istanza di servizio unico e proxy client (tutte le chiamate devono essere effettuate nella stessa istanza proxy).

Ecco alcune configurazioni di base per consentire contesto di sicurezza:

<wsHttpBinding>
  <binding name="wsHttp">
    <security mode="Message">
      <message clientCredentialsType="UserName" estabilishSecurityContext="true" />
    </security>
  </binding>
</wsHttpBinding>

EstabilishSecurityContext è vero per impostazione predefinita. Quando si accende questo sul protocollo WS-SecureConversation viene utilizzato. Prima convocazione passa le credenziali che sono autenticati e token di sicurezza viene rilasciato al cliente. le chiamate successive usano questo token di sicurezza per fornire identità del client. Questo comportamento è trasparente per gli sviluppatori in modo da non avere a che fare con il gettone a tutti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top