Verbindingsreeksen in ADO.NET
Een verbindingsreeks bevat initialisatie-informatie die wordt doorgegeven als een parameter van een gegevensprovider aan een gegevensbron. De gegevensprovider ontvangt de verbindingsreeks als de waarde van de DbConnection.ConnectionString eigenschap. De provider parseert de verbindingsreeks en zorgt ervoor dat de syntaxis juist is en of de trefwoorden worden ondersteund. Vervolgens geeft de DbConnection.Open() methode de geparseerde verbindingsparameters door aan de gegevensbron. De gegevensbron voert verdere validatie uit en brengt een verbinding tot stand.
Syntaxis van verbindingsreeks
Een verbindingsreeks is een door puntkomma's gescheiden lijst met sleutel-/waardeparameterparen:
keyword1=value; keyword2=value;
Trefwoorden zijn niet hoofdlettergevoelig. Waarden kunnen echter hoofdlettergevoelig zijn, afhankelijk van de gegevensbron. Zowel trefwoorden als waarden kunnen spaties bevatten. Voorloop- en volgspaties worden genegeerd in trefwoorden en niet-aanhalingswaarden.
Als een waarde de puntkomma's, Unicode-besturingstekens of voorloop- of volgspaties bevat, moet deze tussen enkele of dubbele aanhalingstekens staan. Voorbeeld:
Keyword=" whitespace ";
Keyword='special;character';
Het insluitteken mag niet voorkomen binnen de waarde die het omsluit. Daarom kan een waarde met enkele aanhalingstekens alleen tussen dubbele aanhalingstekens worden geplaatst en omgekeerd:
Keyword='double"quotation;mark';
Keyword="single'quotation;mark";
U kunt ook ontsnappen aan het ingesloten teken door er twee samen te gebruiken:
Keyword="double""quotation";
Keyword='single''quotation';
De aanhalingstekens zelf, evenals het gelijkteken, hoeven niet te ontsnappen, dus de volgende verbindingsreeks s zijn geldig:
Keyword=no "escaping" 'required';
Keyword=a=b=c
Aangezien elke waarde wordt gelezen tot de volgende puntkomma of het einde van de tekenreeks, is a=b=c
de waarde in het laatste voorbeeld en is de laatste puntkomma optioneel.
Alle verbindingsreeks delen dezelfde basissyntaxis die eerder zijn beschreven. De set herkende trefwoorden is echter afhankelijk van de provider en is in de loop der jaren ontwikkeld van eerdere API's zoals ODBC. De .NET Framework-gegevensprovider voor SQL Server (SqlClient
) ondersteunt veel trefwoorden van oudere API's, maar is over het algemeen flexibeler en accepteert synoniemen voor veel van de algemene verbindingsreeks trefwoorden.
Typfouten kunnen fouten veroorzaken. Is bijvoorbeeld Integrated Security=true
geldig, maar IntegratedSecurity=true
veroorzaakt een fout.
Verbindingsreeksen die handmatig tijdens runtime zijn samengesteld vanuit niet-gevalideerde gebruikersinvoer, zijn kwetsbaar voor aanvallen met tekenreeksinjectie en brengen de beveiliging in gevaar bij de gegevensbron. Om deze problemen op te lossen, heeft ADO.NET 2.0 verbindingsreeks builders geïntroduceerd voor elke .NET Framework-gegevensprovider. Deze verbindingsreeks opbouwfuncties stellen parameters beschikbaar als sterk getypte eigenschappen en maken het mogelijk om de verbindingsreeks te valideren voordat deze naar de gegevensbron wordt verzonden.
Belangrijk
Microsoft raadt u aan de veiligste verificatiestroom te gebruiken die beschikbaar is. Als u verbinding maakt met Azure SQL, is Managed Identities voor Azure-resources de aanbevolen verificatiemethode.
In deze sectie
Opbouwfuncties voor verbindingsreeksen
Demonstreert hoe u de ConnectionStringBuilder
klassen gebruikt om geldige verbindingsreeks s tijdens runtime te maken.
Verbindingsreeksen en configuratiebestanden
Demonstreert hoe u verbindingsreeks s opslaat en ophaalt in configuratiebestanden.
Syntaxis van verbindingsreeks
Beschrijft hoe u providerspecifieke verbindingsreeks s voor SqlClient
, OracleClient
en OleDb
Odbc
.
Verbindingsgegevens beveiligen
Demonstreert technieken voor het beveiligen van informatie die wordt gebruikt om verbinding te maken met een gegevensbron.