2011-11-05 10 views
5

Sto lavorando a una soluzione in cui ho un progetto WPF che utilizza un DataService WCF che si trova in un altro progetto ASP .NET per accedere ai dati.
Devo fornire un livello di sicurezza che garantisca che solo gli utenti autenticati possano accedere al servizio. Avendo navigato in rete mi sono rotto la testa cercando di farlo. Qual è il modo corretto per implementarlo?WCF sicurezza dei dataservice in un'applicazione WPF

+0

Creazione di token utente potrebbe aiutare .. La tua domanda è interessante :) –

risposta

2

ho fatto in passato, quando il metodo del WCF Login creerebbe un oggetto utente, assegnare all'utente oggetto di un token (nel mio caso, è stato un GUID), e memorizzare internamente sul server WCF in un elenco AuthenticatedUsers .

Qualsiasi altra chiamata WCF ha richiesto il token come parametro. Verificherebbe se un utente esistesse nell'elenco AuthenticatedUsers con quel token e restituirebbe un errore se non esistesse l'utente con quel token. Un ulteriore vantaggio è che vorrei sempre sapere chi ha fatto la chiamata alla WCF senza aver bisogno di passare un ID utente.

Ho anche memorizzato un DateTime LastActivity con gli oggetti Utente sul server. Ogni chiamata WCF aggiornava questo valore e fornendo l'elenco AuthenticatedUsers sul server WCF aveva almeno un valore, un timer veniva eseguito sul server che controllava il valore AuthenticatedUsers LastActivity ed eliminava l'utente se erano stati inattivi per oltre 20 minuti.

Problemi correlati