Condividi tramite


Proteggere la programmazione con l'adapter Oracle Database

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, è necessario specificare un nome utente e una password per il database Oracle. È consigliabile eseguire questa operazione solo dalla scheda Sicurezza della finestra di dialogo Configura adattatore . Immettendo le credenziali Oracle dalla scheda Sicurezza anziché direttamente nel campo Configura un URI , assicurarsi quanto segue:

  • Le credenziali non verranno visualizzate nel campo URI della finestra di dialogo Aggiungi plug-in di riferimento al servizio adapter in cui chiunque abbia accesso alla schermata del computer può leggerli.

  • Le credenziali non verranno visualizzate nel file di configurazione generato dal plug-in Aggiungi riferimento al servizio adapter.

    Per altre informazioni su come generare un client WCF usando il plug-in Aggiungi riferimento al servizio adapter, incluso come immettere un nome utente e una password per il database Oracle, vedere Ottenere i metadati per le operazioni di Oracle Database in Visual Studio.

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 l'autenticazione 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'adattatore Di database Oracle è ospitato in-process con l'applicazione che utilizza, non è fondamentale usare la classe ClientCredentials per impostare le credenziali sugli oggetti di comunicazione client usati dall'applicazione che utilizza l'applicazione. Si tratta tuttavia di una buona prassi.

L'adapter Oracle Database incoraggia l'uso della classe ClientCredentials . Questa proprietà specifica se l'adattatore accetterà il nome utente e la password per il database Oracle nell'URI di connessione. AcceptCredentialsInUri per impostazione predefinita è false, il che significa che l'adattatore genererà un'eccezione se l'URI di connessione contiene credenziali. È possibile impostare AcceptCredentialsInUri su true per specificare le credenziali nell'URI di connessione.

Nell'esempio seguente viene illustrato come utilizzare la proprietà Credentials per impostare le credenziali per il database Oracle in channelFactory.

// Create binding and endpoint  
OracleDBBinding binding = new OracleDBBinding();  
EndpointAddress endpointAddress = new EndpointAddress("oracleDB://Adapter");  
  
// Create the channel factory   
ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, endpointAddress))  
  
// Set user name and password  
factory.Credentials.UserName.UserName = "SCOTT";  
factory.Credentials.UserName.Password = "TIGER";  
  
// Open the channel factory  
factory.Open();  

Nell'esempio seguente viene illustrato come usare la classe ClientCredentials per impostare le credenziali per il database Oracle in un client WCF.

// Initialize a new client for the SQLEXECUTE operation from configuration   
SQLEXECUTEClient sqlExecuteClient = new SQLEXECUTEClient("OracleDBBinding_SQLEXECUTE");  
  
// Set user name and password  
sqlExecuteClient.ClientCredentials.UserName.UserName = "SCOTT";  
sqlExecuteClient.ClientCredentials.UserName.Password = "TIGER";  
  
// Open the client  
sqlExecuteClient.Open();  

Come è possibile fornire uno scambio di dati più sicuro tra i limiti dei processi?

L'adapter Oracle Database è ospitato in-process con l'applicazione o il servizio che lo utilizza. Poiché l'adattatore è ospitato in-process con il consumer, non è necessario fornire sicurezza sui messaggi scambiati tra il consumer e l'adattatore Oracle Database. Tuttavia, se l'applicazione o il servizio che usa 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 del database Oracle
Procedure consigliate