Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Come si proteggono le credenziali quando si usa il plug-in Add Adapter Service Reference di Visual Studio?
Quando si usa il plug-in Aggiungi riferimento al servizio Adapter per creare un client WCF, potrebbe essere necessario fornire un nome utente e una password per il database di SQL Server. È necessario immettere le credenziali dalla scheda Sicurezza della finestra di dialogo Configura adattatore . L'adapter SQL non offre un'opzione per specificare il nome utente e la password come parte dell'URI di connessione. In questo modo si garantisce quanto segue:
Le credenziali non verranno visualizzate nel campo Configura un URI della finestra di dialogo del plug-in Aggiungi riferimento al servizio adapter in cui chiunque abbia accesso allo schermo del computer può leggerle.
Le credenziali non verranno visualizzate nel file di configurazione generato dal plug-in Aggiungi Riferimento al Servizio Adapter.
Per ulteriori informazioni su come generare un client WCF usando il plug-in Aggiungi riferimento al servizio dell'adapter, incluso come immettere un nome utente e una password per il database di SQL Server, vedere Ottenere metadati per le operazioni di SQL Server in Visual Studio tramite l'adapter SQL.
Quali sono le procedure consigliate per l'impostazione delle credenziali nel codice?
WCF fornisce la classe ClientCredentials per configurare le credenziali usate da un oggetto di comunicazione client, ad esempio ChannelFactory, per autenticarsi con un servizio. Usando la classe ClientCredentials , assicurarsi che WCF usi qualsiasi meccanismo di autenticazione specificato nello stack di canali dell'oggetto e li applichi allo scambio tra il client e il servizio.
Poiché l'adapter SQL è ospitato in-process con l'applicazione di consumo, non è imperativo utilizzare la classe ClientCredentials per impostare le credenziali sugli oggetti di comunicazione client utilizzati dall'applicazione stessa. È tuttavia considerata buona norma farlo.
L'adapter SQL richiede l'uso della classe ClientCredentials per il passaggio di credenziali a livello di codice. La proprietà di associazione AcceptCredentialsInUri viene ignorata dall'adapter SQL per impedire il passaggio di credenziali nell'URI.
Nell'esempio seguente viene illustrato come utilizzare la proprietà Credentials per impostare le credenziali per il database di SQL Server in channelFactory.
// Create binding and endpoint
SqlAdapterBinding binding = new SqlAdapterBinding();
EndpointAddress address = new EndpointAddress("mssql://mysqlserver//mydatabase?");
// Create the channel factory
ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, endpointAddress))
// Set user name and password
factory.Credentials.UserName.UserName = "myuser";
factory.Credentials.UserName.Password = "mypassword";
// Open the channel factory
factory.Open();
Nell'esempio seguente viene illustrato come usare la classe ClientCredentials per impostare le credenziali per il database di SQL Server in un client WCF.
// Initialize a new client for the SELECT operation on the Employee table
SqlAdapterBinding binding = new SqlAdapterBinding();
EndpointAddress address = new EndpointAddress("mssql://mysqlserver//mydatabase?");
TableOp_dbo_EmployeeClient client = new TableOp_dbo_EmployeeClient(binding,address);
// Set user name and password
client.ClientCredentials.UserName.UserName = "myuser";
client.ClientCredentials.UserName.Password = "mypassword";
// Open the client
client.Open();
Come è possibile fornire uno scambio di dati più sicuro tra i limiti dei processi?
L'adapter SQL è ospitato in-process con l'applicazione o il servizio che lo utilizza. Poiché l'adattatore è ospitato in-process con il consumatore, non è necessario implementare misure di sicurezza per i messaggi scambiati tra il consumatore e l'adattatore SQL. Tuttavia, se l'applicazione o il servizio che utilizza invia messaggi che contengono informazioni riservate sul database attraverso un limite di processo a un altro servizio o client, è necessario adottare misure per garantire una protezione adeguata per questi dati nell'ambiente in uso. Windows Communication Foundation (WCF) offre molte opzioni per proteggere i messaggi inviati tra client e servizi. Per altre informazioni su come proteggere i messaggi inviati tra client e servizi in WCF, vedere Protezione di servizi e client. Per informazioni più generali sulle funzionalità di sicurezza offerte da WCF, vedere Sicurezza di Windows Communication Foundation.
Vedere anche
Proteggere le applicazioni SQL
Procedure consigliate per proteggere l'adapter SQL