Ho un servizio WCF che richiede un token di sicurezza emesso da un servizio STS WCF separato. Tutto questo funziona semplicemente dandy. Nella mia domanda, io uso il servizio in questo modo:Come impone un aggiornamento del token di sicurezza per un servizio WCF?
MyServiceClient myService = new MyServiceClient();
myService.Open();
myService.DoStuff();
Il servizio STS è chiamato ad ottenere un token e il token viene utilizzato per chiamare il metodo di servizio DoStuff.
Una volta terminato l'handshake iniziale, l'oggetto myService
ha il token memorizzato nella cache e lo riutilizza fino alla scadenza. Questo è un buon comportamento e tutto, ma come potrei forzare per aggiornare il token?
myService.ClientCredentials.Invalidate(); // something like this?
tale che se ho chiamato DoStuff() di nuovo sarebbe sapere che ha bisogno di andare alle STS ancora tanto come ha fatto la prima volta.
Sono bloccato solo a creare un nuovo oggetto di classe proxy, ad esempio myService = new MyServiceClient();
? Funziona ma sembra la soluzione della bomba nucleare.
alternativa, c'è un modo per ottenere solo manualmente un nuovo token e sostituire quello attuale, cioè myService.ClientCredentials.Renew();
?
Se devo fare una classe ClientCredentials personalizzati per fare questo, come faccio a implementare i metodi esempio di cui sopra?