Stringhe di connessione in ADO.NETConnection Strings in ADO.NET

Una stringa di connessione contiene informazioni di inizializzazione che vengono passate come parametro da un provider di dati a un'origine dati.A connection string contains initialization information that is passed as a parameter from a data provider to a data source. Il provider di dati riceve la stringa di connessione come valore della proprietà DbConnection.ConnectionString.The data provider receives the connection string as the value of the DbConnection.ConnectionString property. Il provider analizza la stringa di connessione e garantisce che la sintassi sia corretta e che le parole chiave siano supportate.The provider parses the connection string and ensures that the syntax is correct and that the keywords are supported. Quindi il metodo DbConnection.Open() passa i parametri di connessione analizzati all'origine dati.Then the DbConnection.Open() method passes the parsed connection parameters to the data source. L'origine dati esegue una convalida ulteriore e stabilisce una connessione.The data source performs further validation and establishes a connection.

Sintassi delle stringhe di connessioneConnection string syntax

Una stringa di connessione è un elenco delimitato da punti e virgola di coppie di parametri chiave/valore:A connection string is a semicolon-delimited list of key/value parameter pairs:

keyword1=value; keyword2=value;

Parole chiave senza distinzione tra maiuscole e minuscole.Keywords are not case-sensitive. I valori, tuttavia, possono fare distinzione tra maiuscole e minuscole, a seconda dell'origine dati.Values, however, may be case-sensitive, depending on the data source. Sia le parole chiave che i valori possono contenere spazi vuoti.Both keywords and values may contain whitespace characters. Gli spazi vuoti iniziali e finali vengono ignorati nelle parole chiave e nei valori non racchiusi tra virgolette.Leading and trailing white space is ignored in keywords and unquoted values.

Se un valore contiene il punto e virgola, i caratteri di controllo Unicodeo gli spazi vuoti iniziali o finali, è necessario racchiuderlo tra virgolette singole o doppie.If a value contains the semicolon, Unicode control characters, or leading or trailing white space, it must be enclosed in single or double quotation marks. Esempio:For example:

Keyword=" whitespace  ";
Keyword='special;character';

Il carattere di inclusione potrebbe non essere presente nel valore che racchiude.The enclosing character may not occur within the value it encloses. Pertanto, un valore contenente virgolette singole può essere racchiuso tra virgolette doppie e viceversa:Therefore, a value containing single quotation marks can be enclosed only in double quotation marks, and vice versa:

Keyword='double"quotation;mark';
Keyword="single'quotation;mark";

È anche possibile utilizzare un carattere di escape per il carattere di inclusione utilizzandone due:You can also escape the enclosing character by using two of them together:

Keyword="double""quotation";
Keyword='single''quotation';

Le virgolette stesse, così come il segno di uguale, non richiedono l'escape, quindi sono valide le seguenti stringhe di connessione:The quotation marks themselves, as well as the equals sign, do not require escaping, so the following connection strings are valid:

Keyword=no "escaping" 'required';
Keyword=a=b=c

Poiché ogni valore viene letto fino al punto e virgola successivo o alla fine della stringa, il valore nel secondo esempio viene a=b=ce il punto e virgola finale è facoltativo.Since each value is read till the next semicolon or the end of string, the value in the latter example is a=b=c, and the final semicolon is optional.

Tutte le stringhe di connessione condividono la stessa sintassi di base descritta in precedenza.All connection strings share the same basic syntax described above. Il set di parole chiave riconosciute dipende tuttavia dal provider e si è evoluto negli anni dalle API precedenti, ad esempio ODBC.The set of recognized keywords depends on the provider, however, and has evolved over the years from earlier APIs such as ODBC. Il provider di dati .NET Framework per SQL Server (SqlClient) supporta molte parole chiave delle API precedenti, ma è in genere più flessibile e accetta sinonimi per molte delle parole chiave comuni della stringa di connessione.The .NET Framework data provider for SQL Server (SqlClient) supports many keywords from older APIs, but is generally more flexible and accepts synonyms for many of the common connection string keywords.

La digitazione degli errori può causare errori.Typing mistakes can cause errors. Ad esempio, Integrated Security=true è valido, ma IntegratedSecurity=true causa un errore.For example, Integrated Security=true is valid, but IntegratedSecurity=true causes an error.

Le stringhe di connessione costruite manualmente in fase di esecuzione dall'input dell'utente non convalidato sono vulnerabili agli attacchi di stringa Injection e compromettono la sicurezza nell'origine dati.Connection strings constructed manually at run time from unvalidated user input are vulnerable to string-injection attacks and jeopardize security at the data source. Per risolvere questi problemi, in ADO.NET 2,0 sono stati introdotti i generatori di stringhe di connessione per ogni provider di dati .NET Framework .To address these problems, ADO.NET 2.0 introduced connection string builders for each .NET Framework data provider. Questi generatori di stringhe di connessione espongono parametri come proprietà fortemente tipizzate e rendono possibile la convalida della stringa di connessione prima che venga inviata all'origine dati.These connection string builders expose parameters as strongly-typed properties, and make it possible to validate the connection string before it's sent to the data source.

Contenuto della sezioneIn This Section

Generatori di stringhe di connessioneConnection String Builders
Viene illustrato come usare le classi ConnectionStringBuilder per creare stringhe di connessione valide in fase di esecuzione.Demonstrates how to use the ConnectionStringBuilder classes to construct valid connection strings at run time.

Stringhe di connessione e file di configurazioneConnection Strings and Configuration Files
Viene illustrato come archiviare e recuperare le stringhe di connessione nei file di configurazione.Demonstrates how to store and retrieve connection strings in configuration files.

\ della sintassi delle stringhe di connessioneConnection String Syntax</span> Viene descritto come configurare stringhe di connessione specifiche del provider per SqlClient, OracleClient, OleDb e Odbc.Describes how to configure provider-specific connection strings for SqlClient, OracleClient, OleDb, and Odbc.

Protezione delle informazioni di connessioneProtecting Connection Information
Vengono illustrate tecniche per proteggere le informazioni usate per la connessione a un'origine dati.Demonstrates techniques for protecting information used to connect to a data source.

Vedere ancheSee also