Protezione di servizi flusso di lavoro

Le informazioni contenute in questo argomento sono valide per Windows Workflow Foundation 4.

Nell'esempio di servizio flusso di lavoro protetto vengono illustrate le procedure riportate di seguito:

  • Creazione di un servizio flusso di lavoro di base utilizzando le attività Receive e SendReply.

  • Utilizzo della configurazione Windows Communication Foundation (WCF) per definire endpoint sicuri per l'utilizzo dal servizio flusso di lavoro.

  • Creazione di richieste all'interno di criteri personalizzati e utilizzo di ServiceAuthorizationManager per convalidare richieste.

Dimostrazione

Utilizzo della sicurezza WCF per proteggere la comunicazione tra client e servizio flusso di lavoro,con autorizzazione basata sulle attestazioni

Discussione

In questo esempio viene illustrato l'utilizzo dell'infrastruttura di sicurezza di WCF per proteggere un servizio flusso di lavoro con la stessa modalità di con un normale servizio WCF. In particolare, viene utilizzata una richiesta personalizzata per l'autorizzazione. In questo caso, viene utilizzato WSHttpBinding e la sicurezza in modalità messaggio con credenziali di Windows.

L'oggetto personalizzato IAuthorizationPolicy (CustomNameCheckerPolicy) esegue il controllo del nome utente di Windows del client e di un carattere specifico. Se tale carattere è presente, la richiesta viene creata e aggiunta a EvaluationContext. In questo modo, i criteri personalizzati dichiarano che il client dispone di questo carattere nel nome utente. È possibile eseguire query su questa richiesta per tutta la durata della chiamata. È possibile trovare il carattere in Constants.cs.

I criteri di autorizzazione cercano la richiesta in SecureWorkFlowAuthZManager. Se viene trovata, viene restituito true e al flusso di lavoro è consentito procedere. In caso contrario, viene restituito false che causa la restituzione al client di un messaggio 'Accesso negato'. Nel contesto sono presenti altre richieste che possono essere esaminate in SecureWorkFlowAuthZManager.

Per eseguire questo esempio

  1. Eseguire Visual Studio 2010 con privilegi di amministratore.

  2. Caricare SecuringWorkflowServices.sln in Visual Studio 2010.

  3. Premere F6 per compilare la soluzione.

  4. Impostare il progetto Service come progetto di avvio per la soluzione.

  5. Per avviare l'esempio senza debug, premere CTRL+F5.

  6. Impostare il progetto Client come progetto di avvio per la soluzione.

  7. Premere CTRL+F5 per avviare l'esempio senza debug.

Ee943756.Important(it-it,VS.100).gif Nota:
È possibile che gli esempi siano già installati nel computer. Verificare la directory seguente (impostazione predefinita) prima di continuare.

<UnitàInstallazione>:\WF_WCF_Samples

Se questa directory non esiste, visitare la pagina relativa agli esempi di Windows Communication Foundation (WCF) e Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti gli esempi di Windows Communication Foundation (WCF) e WF. Questo esempio si trova nella directory seguente.

<UnitàInstallazione>:\WF_WCF_Samples\WF\Scenario\Services\SecuringWorkflowServices