diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj
index 0a48c5499e..f90e060364 100644
--- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj
+++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj
@@ -813,6 +813,7 @@
+
@@ -959,9 +960,11 @@
Microsoft\Data\SqlTypes\SqlFileStream.Windows.cs
+
+
@@ -1000,8 +1003,10 @@
Microsoft\Data\SqlTypes\SqlFileStream.netcore.Unix.cs
+
+
@@ -1029,6 +1034,7 @@
Resources\Microsoft.Data.SqlClient.SqlMetaData.xml
+
diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlConnection.cs b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlConnection.cs
index 45df50badb..11e7bd71ad 100644
--- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlConnection.cs
+++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlConnection.cs
@@ -663,7 +663,7 @@ public override int ConnectionTimeout
get
{
SqlConnectionString constr = (SqlConnectionString)ConnectionOptions;
- return constr != null ? constr.ConnectTimeout : SqlConnectionString.DEFAULT.Connect_Timeout;
+ return constr != null ? constr.ConnectTimeout : DbConnectionStringDefaults.ConnectTimeout;
}
}
@@ -675,7 +675,7 @@ public int CommandTimeout
get
{
SqlConnectionString constr = (SqlConnectionString)ConnectionOptions;
- return constr != null ? constr.CommandTimeout : SqlConnectionString.DEFAULT.Command_Timeout;
+ return constr != null ? constr.CommandTimeout : DbConnectionStringDefaults.CommandTimeout;
}
}
@@ -757,7 +757,7 @@ public override string Database
else
{
SqlConnectionString constr = (SqlConnectionString)ConnectionOptions;
- result = constr != null ? constr.InitialCatalog : SqlConnectionString.DEFAULT.Initial_Catalog;
+ result = constr != null ? constr.InitialCatalog : DbConnectionStringDefaults.InitialCatalog;
}
return result;
}
@@ -830,7 +830,7 @@ public override string DataSource
else
{
SqlConnectionString constr = (SqlConnectionString)ConnectionOptions;
- result = constr != null ? constr.DataSource : SqlConnectionString.DEFAULT.Data_Source;
+ result = constr != null ? constr.DataSource : DbConnectionStringDefaults.DataSource;
}
return result;
}
@@ -857,7 +857,7 @@ public int PacketSize
else
{
SqlConnectionString constr = (SqlConnectionString)ConnectionOptions;
- result = constr != null ? constr.PacketSize : SqlConnectionString.DEFAULT.Packet_Size;
+ result = constr != null ? constr.PacketSize : DbConnectionStringDefaults.PacketSize;
}
return result;
}
@@ -2272,7 +2272,7 @@ public static void ChangePassword(string connectionString, string newPassword)
}
if (!string.IsNullOrEmpty(connectionOptions.AttachDBFilename))
{
- throw SQL.ChangePasswordUseOfUnallowedKey(SqlConnectionString.KEY.AttachDBFilename);
+ throw SQL.ChangePasswordUseOfUnallowedKey(DbConnectionStringKeywords.AttachDbFilename);
}
ChangePassword(connectionString, connectionOptions, null, newPassword, null);
@@ -2329,7 +2329,7 @@ public static void ChangePassword(string connectionString, SqlCredential credent
if (!string.IsNullOrEmpty(connectionOptions.AttachDBFilename))
{
- throw SQL.ChangePasswordUseOfUnallowedKey(SqlConnectionString.KEY.AttachDBFilename);
+ throw SQL.ChangePasswordUseOfUnallowedKey(DbConnectionStringKeywords.AttachDbFilename);
}
ChangePassword(connectionString, connectionOptions, credential, null, newSecurePassword);
diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlConnection.cs b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlConnection.cs
index 46800b4140..c2ea5c3981 100644
--- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlConnection.cs
+++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlConnection.cs
@@ -657,7 +657,7 @@ public override int ConnectionTimeout
get
{
SqlConnectionString constr = (SqlConnectionString)ConnectionOptions;
- return constr != null ? constr.ConnectTimeout : SqlConnectionString.DEFAULT.Connect_Timeout;
+ return constr != null ? constr.ConnectTimeout : DbConnectionStringDefaults.ConnectTimeout;
}
}
@@ -669,7 +669,7 @@ public int CommandTimeout
get
{
SqlConnectionString constr = (SqlConnectionString)ConnectionOptions;
- return constr != null ? constr.CommandTimeout : SqlConnectionString.DEFAULT.Command_Timeout;
+ return constr != null ? constr.CommandTimeout : DbConnectionStringDefaults.CommandTimeout;
}
}
@@ -750,7 +750,7 @@ public override string Database
else
{
SqlConnectionString constr = (SqlConnectionString)ConnectionOptions;
- result = constr != null ? constr.InitialCatalog : SqlConnectionString.DEFAULT.Initial_Catalog;
+ result = constr != null ? constr.InitialCatalog : DbConnectionStringDefaults.InitialCatalog;
}
return result;
}
@@ -822,7 +822,7 @@ public override string DataSource
else
{
SqlConnectionString constr = (SqlConnectionString)ConnectionOptions;
- result = constr != null ? constr.DataSource : SqlConnectionString.DEFAULT.Data_Source;
+ result = constr != null ? constr.DataSource : DbConnectionStringDefaults.DataSource;
}
return result;
}
@@ -847,7 +847,7 @@ public int PacketSize
else
{
SqlConnectionString constr = (SqlConnectionString)ConnectionOptions;
- result = constr != null ? constr.PacketSize : SqlConnectionString.DEFAULT.Packet_Size;
+ result = constr != null ? constr.PacketSize : DbConnectionStringDefaults.PacketSize;
}
return result;
@@ -2195,7 +2195,7 @@ public static void ChangePassword(string connectionString, string newPassword)
}
if (!string.IsNullOrEmpty(connectionOptions.AttachDBFilename))
{
- throw SQL.ChangePasswordUseOfUnallowedKey(SqlConnectionString.KEY.AttachDBFilename);
+ throw SQL.ChangePasswordUseOfUnallowedKey(DbConnectionStringKeywords.AttachDbFilename);
}
PermissionSet permissionSet = connectionOptions.CreatePermissionSet();
@@ -2255,7 +2255,7 @@ public static void ChangePassword(string connectionString, SqlCredential credent
if (!string.IsNullOrEmpty(connectionOptions.AttachDBFilename))
{
- throw SQL.ChangePasswordUseOfUnallowedKey(SqlConnectionString.KEY.AttachDBFilename);
+ throw SQL.ChangePasswordUseOfUnallowedKey(DbConnectionStringKeywords.AttachDbFilename);
}
PermissionSet permissionSet = connectionOptions.CreatePermissionSet();
diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlInternalConnectionTds.cs b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlInternalConnectionTds.cs
index d460c61619..c021239191 100644
--- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlInternalConnectionTds.cs
+++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlInternalConnectionTds.cs
@@ -1795,7 +1795,7 @@ private bool ShouldDisableTnir(SqlConnectionString connectionOptions)
// Check if the user had explicitly specified the TNIR option in the connection string or the connection string builder.
// If the user has specified the option in the connection string explicitly, then we shouldn't disable TNIR.
- bool isTnirExplicitlySpecifiedInConnectionOptions = connectionOptions.Parsetable.ContainsKey(SqlConnectionString.KEY.TransparentNetworkIPResolution);
+ bool isTnirExplicitlySpecifiedInConnectionOptions = connectionOptions.Parsetable.ContainsKey(DbConnectionStringKeywords.TransparentNetworkIpResolution);
return isTnirExplicitlySpecifiedInConnectionOptions ? false : (isAzureEndPoint || isFedAuthEnabled);
}
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionOptions.Debug.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionOptions.Debug.cs
index 867deb1ac3..368c351152 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionOptions.Debug.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionOptions.Debug.cs
@@ -50,7 +50,7 @@ internal partial class DbConnectionOptions
#endif
[Conditional("DEBUG")]
- private static void DebugTraceKeyValuePair(string keyname, string keyvalue, Dictionary synonyms)
+ private static void DebugTraceKeyValuePair(string keyname, string keyvalue, IReadOnlyDictionary synonyms)
{
if (SqlClientEventSource.Log.IsAdvancedTraceOn())
{
@@ -77,7 +77,7 @@ private static void DebugTraceKeyValuePair(string keyname, string keyvalue, Dict
private static void ParseComparison(
Dictionary parseTable,
string connectionString,
- Dictionary synonyms,
+ IReadOnlyDictionary synonyms,
bool firstKey,
Exception e)
{
@@ -138,7 +138,7 @@ private static void ParseComparison(
#if DEBUG
private static Dictionary SplitConnectionString(
string connectionString,
- Dictionary synonyms,
+ IReadOnlyDictionary synonyms,
bool firstKey)
{
var parseTable = new Dictionary();
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionOptions.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionOptions.cs
index 39d66a41e0..127e8b29e6 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionOptions.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionOptions.cs
@@ -45,7 +45,7 @@ internal partial class DbConnectionOptions
internal Dictionary Parsetable => _parsetable;
public bool IsEmpty => _keyChain == null;
- public DbConnectionOptions(string connectionString, Dictionary synonyms)
+ public DbConnectionOptions(string connectionString, IReadOnlyDictionary synonyms)
{
_parsetable = new Dictionary(StringComparer.InvariantCultureIgnoreCase);
_usersConnectionString = connectionString ?? "";
@@ -56,8 +56,8 @@ public DbConnectionOptions(string connectionString, Dictionary s
_keyChain = ParseInternal(_parsetable, _usersConnectionString, true, synonyms, false);
_hasPasswordKeyword = _parsetable.ContainsKey(DbConnectionStringKeywords.Password) ||
_parsetable.ContainsKey(DbConnectionStringSynonyms.Pwd);
- _hasUserIdKeyword = _parsetable.ContainsKey(DbConnectionStringKeywords.UserID) ||
- _parsetable.ContainsKey(DbConnectionStringSynonyms.UID);
+ _hasUserIdKeyword = _parsetable.ContainsKey(DbConnectionStringKeywords.UserId) ||
+ _parsetable.ContainsKey(DbConnectionStringSynonyms.Uid);
}
}
@@ -462,7 +462,12 @@ private static bool IsKeyNameValid(string keyname)
return false;
}
- private static NameValuePair ParseInternal(Dictionary parsetable, string connectionString, bool buildChain, Dictionary synonyms, bool firstKey)
+ private static NameValuePair ParseInternal(
+ Dictionary parsetable,
+ string connectionString,
+ bool buildChain,
+ IReadOnlyDictionary synonyms,
+ bool firstKey)
{
Debug.Assert(connectionString != null, "null connectionstring");
StringBuilder buffer = new StringBuilder();
@@ -573,7 +578,7 @@ internal NameValuePair ReplacePasswordPwd(out string constr, bool fakePassword)
constr = builder.ToString();
return head;
}
-
+
// SxS notes:
// * this method queries "DataDirectory" value from the current AppDomain.
// This string is used for to replace "!DataDirectory!" values in the connection string, it is not considered as an "exposed resource".
@@ -628,7 +633,7 @@ internal string ExpandAttachDbFileName(string replacementValue)
StringBuilder builder = new(_usersConnectionString.Length);
for (NameValuePair current = _keyChain; current != null; current = current.Next)
{
- if (string.Equals(current.Name, DbConnectionStringKeywords.AttachDBFilename, StringComparison.InvariantCultureIgnoreCase))
+ if (string.Equals(current.Name, DbConnectionStringKeywords.AttachDbFilename, StringComparison.InvariantCultureIgnoreCase))
{
builder.Append($"{current.Name}={replacementValue};");
}
@@ -644,7 +649,7 @@ internal string ExpandAttachDbFileName(string replacementValue)
#endif
#endregion
-
+
#region NetFx Methods
#if NETFRAMEWORK
@@ -679,8 +684,8 @@ internal bool HasBlankPassword
return string.IsNullOrEmpty(value); // MDAC 83097
}
- return (_parsetable.TryGetValue(DbConnectionStringKeywords.UserID, out value) && !string.IsNullOrEmpty(value)) ||
- (_parsetable.TryGetValue(DbConnectionStringSynonyms.UID, out value) && !string.IsNullOrEmpty(value));
+ return (_parsetable.TryGetValue(DbConnectionStringKeywords.UserId, out value) && !string.IsNullOrEmpty(value)) ||
+ (_parsetable.TryGetValue(DbConnectionStringSynonyms.Uid, out value) && !string.IsNullOrEmpty(value));
}
return false;
}
@@ -770,6 +775,5 @@ internal static void AppendKeyValuePairBuilder(StringBuilder builder, string key
}
#endif
#endregion
-
}
}
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionString.netfx.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionString.netfx.cs
index b302a58176..a0e0d0f6a7 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionString.netfx.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionString.netfx.cs
@@ -47,7 +47,12 @@ internal sealed class DbConnectionString
readonly private string _encryptedActualConnectionString;
#pragma warning restore 169
- internal DbConnectionString(string value, string restrictions, KeyRestrictionBehavior behavior, Dictionary synonyms, bool useOdbcRules)
+ internal DbConnectionString(
+ string value,
+ string restrictions,
+ KeyRestrictionBehavior behavior,
+ IReadOnlyDictionary synonyms,
+ bool useOdbcRules)
: this(new DbConnectionOptions(value, synonyms), restrictions, behavior, synonyms, false)
{
// useOdbcRules is only used to parse the connection string, not to parse restrictions because values don't apply there
@@ -61,8 +66,14 @@ internal DbConnectionString(DbConnectionOptions connectionOptions)
// since backward compatibility requires Everett level classes
}
- private DbConnectionString(DbConnectionOptions connectionOptions, string restrictions, KeyRestrictionBehavior behavior, Dictionary synonyms, bool mustCloneDictionary)
- { // used by DBDataPermission
+ private DbConnectionString(
+ DbConnectionOptions connectionOptions,
+ string restrictions,
+ KeyRestrictionBehavior behavior,
+ IReadOnlyDictionary synonyms,
+ bool mustCloneDictionary)
+ {
+ // used by DBDataPermission
Debug.Assert(connectionOptions != null, "null connectionOptions");
switch (behavior)
{
@@ -117,7 +128,10 @@ private DbConnectionString(DbConnectionOptions connectionOptions, string restric
}
}
- private DbConnectionString(DbConnectionString connectionString, string[] restrictionValues, KeyRestrictionBehavior behavior)
+ private DbConnectionString(
+ DbConnectionString connectionString,
+ string[] restrictionValues,
+ KeyRestrictionBehavior behavior)
{
// used by intersect for two equal connection strings with different restrictions
_encryptedUsersConnectionString = connectionString._encryptedUsersConnectionString;
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringDefaults.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringDefaults.cs
index 41a8058b5c..20831c4912 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringDefaults.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringDefaults.cs
@@ -15,7 +15,7 @@ internal static class DbConnectionStringDefaults
#else
"Core Microsoft SqlClient Data Provider";
#endif
- internal const string AttachDBFilename = "";
+ internal const string AttachDbFilename = "";
internal const SqlConnectionAttestationProtocol AttestationProtocol = SqlConnectionAttestationProtocol.NotSpecified;
internal static readonly SqlAuthenticationMethod Authentication = SqlAuthenticationMethod.NotSpecified;
internal const SqlConnectionColumnEncryptionSetting ColumnEncryptionSetting = SqlConnectionColumnEncryptionSetting.Disabled;
@@ -30,11 +30,11 @@ internal static class DbConnectionStringDefaults
internal static readonly SqlConnectionEncryptOption Encrypt = SqlConnectionEncryptOption.Mandatory;
internal const bool Enlist = true;
internal const string FailoverPartner = "";
- internal const string FailoverPartnerSPN = "";
+ internal const string FailoverPartnerSpn = "";
internal const string HostNameInCertificate = "";
internal const string InitialCatalog = "";
internal const bool IntegratedSecurity = false;
- internal const SqlConnectionIPAddressPreference IPAddressPreference = SqlConnectionIPAddressPreference.IPv4First;
+ internal const SqlConnectionIPAddressPreference IpAddressPreference = SqlConnectionIPAddressPreference.IPv4First;
internal const int LoadBalanceTimeout = 0; // default of 0 means don't use
internal const int MaxPoolSize = 100;
internal const int MinPoolSize = 0;
@@ -47,17 +47,17 @@ internal static class DbConnectionStringDefaults
internal const bool Pooling = true;
internal const bool Replication = false;
internal const string ServerCertificate = "";
- internal const string ServerSPN = "";
+ internal const string ServerSpn = "";
internal const string TransactionBinding = "Implicit Unbind";
internal const bool TrustServerCertificate = false;
internal const string TypeSystemVersion = "Latest";
- internal const string UserID = "";
+ internal const string UserId = "";
internal const bool UserInstance = false;
- internal const string WorkstationID = "";
+ internal const string WorkstationId = "";
#if NETFRAMEWORK
internal const bool ConnectionReset = true;
- internal static readonly bool TransparentNetworkIPResolution = !LocalAppContextSwitches.DisableTnirByDefault;
+ internal static readonly bool TransparentNetworkIpResolution = !LocalAppContextSwitches.DisableTnirByDefault;
internal const string NetworkLibrary = "";
#endif
}
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringKeywords.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringKeywords.cs
index 65cb781fa1..5c902de2a8 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringKeywords.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringKeywords.cs
@@ -9,7 +9,7 @@ internal static class DbConnectionStringKeywords
// SqlClient
internal const string ApplicationIntent = "Application Intent";
internal const string ApplicationName = "Application Name";
- internal const string AttachDBFilename = "AttachDbFilename";
+ internal const string AttachDbFilename = "AttachDbFilename";
internal const string AttestationProtocol = "Attestation Protocol";
internal const string Authentication = "Authentication";
internal const string ColumnEncryptionSetting = "Column Encryption Setting";
@@ -25,11 +25,11 @@ internal static class DbConnectionStringKeywords
internal const string Encrypt = "Encrypt";
internal const string Enlist = "Enlist";
internal const string FailoverPartner = "Failover Partner";
- internal const string FailoverPartnerSPN = "Failover Partner SPN";
+ internal const string FailoverPartnerSpn = "Failover Partner SPN";
internal const string HostNameInCertificate = "Host Name In Certificate";
internal const string InitialCatalog = "Initial Catalog";
internal const string IntegratedSecurity = "Integrated Security";
- internal const string IPAddressPreference = "IP Address Preference";
+ internal const string IpAddressPreference = "IP Address Preference";
internal const string LoadBalanceTimeout = "Load Balance Timeout";
internal const string MaxPoolSize = "Max Pool Size";
internal const string MinPoolSize = "Min Pool Size";
@@ -43,30 +43,18 @@ internal static class DbConnectionStringKeywords
internal const string Pooling = "Pooling";
internal const string Replication = "Replication";
internal const string ServerCertificate = "Server Certificate";
- internal const string ServerSPN = "Server SPN";
+ internal const string ServerSpn = "Server SPN";
internal const string TransactionBinding = "Transaction Binding";
- internal const string TransparentNetworkIPResolution = "Transparent Network IP Resolution";
+ internal const string TransparentNetworkIpResolution = "Transparent Network IP Resolution";
internal const string TrustServerCertificate = "Trust Server Certificate";
internal const string TypeSystemVersion = "Type System Version";
- internal const string UserID = "User ID";
+ internal const string UserId = "User ID";
internal const string UserInstance = "User Instance";
- internal const string WorkstationID = "Workstation ID";
+ internal const string WorkstationId = "Workstation ID";
#if NETFRAMEWORK
// Odbc
internal const string Driver = "Driver";
- internal const string Dsn = "Dsn";
- internal const string FileDsn = "FileDsn";
- internal const string SaveFile = "SaveFile";
-
- // OleDb
- internal const string FileName = "File Name";
- internal const string OleDbServices = "OLE DB Services";
- internal const string Provider = "Provider";
-
- // OracleClient
- internal const string Unicode = "Unicode";
- internal const string OmitOracleConnectionName = "Omit Oracle Connection Name";
#endif
}
}
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringSynonyms.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringSynonyms.cs
index f7d8881544..8d4060e1b4 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringSynonyms.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/DbConnectionStringSynonyms.cs
@@ -6,88 +6,38 @@ namespace Microsoft.Data.Common.ConnectionString
{
internal static class DbConnectionStringSynonyms
{
- //internal const string TransparentNetworkIPResolution = TRANSPARENTNETWORKIPRESOLUTION;
- internal const string TRANSPARENTNETWORKIPRESOLUTION = "transparentnetworkipresolution";
-
- //internal const string ApplicationName = APP;
- internal const string APP = "app";
-
- // internal const string IPAddressPreference = IPADDRESSPREFERENCE;
- internal const string IPADDRESSPREFERENCE = "ipaddresspreference";
-
- //internal const string ApplicationIntent = APPLICATIONINTENT;
- internal const string APPLICATIONINTENT = "applicationintent";
-
- //internal const string AttachDBFilename = EXTENDEDPROPERTIES + "," + INITIALFILENAME;
- internal const string EXTENDEDPROPERTIES = "extended properties";
- internal const string INITIALFILENAME = "initial file name";
-
- // internal const string HostNameInCertificate = HOSTNAMEINCERTIFICATE;
- internal const string HOSTNAMEINCERTIFICATE = "hostnameincertificate";
-
- // internal const string ServerCertificate = SERVERCERTIFICATE;
- internal const string SERVERCERTIFICATE = "servercertificate";
-
- //internal const string ConnectTimeout = CONNECTIONTIMEOUT + "," +TIMEOUT;
- internal const string CONNECTIONTIMEOUT = "connection timeout";
- internal const string TIMEOUT = "timeout";
-
- //internal const string ConnectRetryCount = CONNECTRETRYCOUNT;
- internal const string CONNECTRETRYCOUNT = "connectretrycount";
-
- //internal const string ConnectRetryInterval = CONNECTRETRYINTERVAL;
- internal const string CONNECTRETRYINTERVAL = "connectretryinterval";
-
- //internal const string CurrentLanguage = LANGUAGE;
- internal const string LANGUAGE = "language";
-
- //internal const string OraDataSource = SERVER;
- //internal const string SqlDataSource = ADDR + "," + ADDRESS + "," + SERVER + "," + NETWORKADDRESS;
- internal const string ADDR = "addr";
- internal const string ADDRESS = "address";
- internal const string SERVER = "server";
- internal const string NETWORKADDRESS = "network address";
-
- //internal const string InitialCatalog = DATABASE;
- internal const string DATABASE = "database";
-
- //internal const string IntegratedSecurity = TRUSTEDCONNECTION;
- internal const string TRUSTEDCONNECTION = "trusted_connection"; // underscore introduced in everett
-
- //internal const string LoadBalanceTimeout = ConnectionLifetime;
+ internal const string Addr = "addr";
+ internal const string Address = "address";
+ internal const string App = "app";
+ internal const string ApplicationIntent = "applicationintent";
internal const string ConnectionLifetime = "connection lifetime";
-
- //internal const string MultipleActiveResultSets = MULTIPLEACTIVERESULTSETS;
- internal const string MULTIPLEACTIVERESULTSETS = "multipleactiveresultsets";
-
- //internal const string MultiSubnetFailover = MULTISUBNETFAILOVER;
- internal const string MULTISUBNETFAILOVER = "multisubnetfailover";
-
- //internal const string NetworkLibrary = NET + "," + NETWORK;
- internal const string NET = "net";
- internal const string NETWORK = "network";
-
- //internal const string PoolBlockingPeriod = POOLBLOCKINGPERIOD;
- internal const string POOLBLOCKINGPERIOD = "poolblockingperiod";
-
- //internal const string Password = Pwd;
+ internal const string ConnectionTimeout = "connection timeout";
+ internal const string ConnectRetryCount = "connectretrycount";
+ internal const string ConnectRetryInterval = "connectretryinterval";
+ internal const string Database = "database";
+ internal const string ExtendedProperties = "extended properties";
+ internal const string FailoverPartnerSpn = "FailoverPartnerSPN";
+ internal const string HostNameInCertificate = "hostnameincertificate";
+ internal const string InitialFileName = "initial file name";
+ internal const string IpAddressPreference = "ipaddresspreference";
+ internal const string Language = "language";
+ internal const string MultipleActiveResultSets = "multipleactiveresultsets";
+ internal const string MultiSubnetFailover = "multisubnetfailover";
+ internal const string Net = "net";
+ internal const string Network = "network";
+ internal const string NetworkAddress = "network address";
+ internal const string PersistSecurityInfo = "persistsecurityinfo";
+ internal const string PoolBlockingPeriod = "poolblockingperiod";
internal const string Pwd = "pwd";
-
- //internal const string PersistSecurityInfo = PERSISTSECURITYINFO;
- internal const string PERSISTSECURITYINFO = "persistsecurityinfo";
-
- //internal const string TrustServerCertificate = TRUSTSERVERCERTIFICATE;
- internal const string TRUSTSERVERCERTIFICATE = "trustservercertificate";
-
- //internal const string UserID = UID + "," + User;
- internal const string UID = "uid";
+ internal const string Server = "server";
+ internal const string ServerCertificate = "servercertificate";
+ internal const string ServerSpn = "ServerSPN";
+ internal const string Timeout = "timeout";
+ internal const string TransparentNetworkIpResolution = "transparentnetworkipresolution";
+ internal const string TrustedConnection = "trusted_connection"; // underscore introduced in everett
+ internal const string TrustServerCertificate = "trustservercertificate";
+ internal const string Uid = "uid";
internal const string User = "user";
-
- //internal const string WorkstationID = WSID;
- internal const string WSID = "wsid";
-
- //internal const string server SPNs
- internal const string ServerSPN = "ServerSPN";
- internal const string FailoverPartnerSPN = "FailoverPartnerSPN";
+ internal const string WsId = "wsid";
}
}
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/IpAddressPreferenceUtilities.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/IpAddressPreferenceUtilities.cs
index a9e59dfe2b..747ae157e4 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/IpAddressPreferenceUtilities.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/ConnectionString/IpAddressPreferenceUtilities.cs
@@ -34,7 +34,7 @@ internal static bool TryConvertToIPAddressPreference(string value, out SqlConnec
{
if (!s_preferenceNames.TryGetValue(value, out result))
{
- result = DbConnectionStringDefaults.IPAddressPreference;
+ result = DbConnectionStringDefaults.IpAddressPreference;
return false;
}
return true;
@@ -55,7 +55,7 @@ internal static SqlConnectionIPAddressPreference ConvertToIPAddressPreference(st
{
if (value is null)
{
- return DbConnectionStringDefaults.IPAddressPreference; // IPv4First
+ return DbConnectionStringDefaults.IpAddressPreference; // IPv4First
}
if (value is string sValue)
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/SqlConnectionPoolGroupProviderInfo.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/SqlConnectionPoolGroupProviderInfo.cs
index 1fe1768c0a..b83a2be4bb 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/SqlConnectionPoolGroupProviderInfo.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/SqlConnectionPoolGroupProviderInfo.cs
@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System.Security;
+using Microsoft.Data.Common.ConnectionString;
namespace Microsoft.Data.SqlClient.ConnectionPool
{
@@ -103,14 +104,14 @@ private PermissionSet CreateFailoverPermission(SqlConnectionString userConnectio
// the server, we will use that name over what was specified
// in the original connection string.
- if (userConnectionOptions.ContainsKey(SqlConnectionString.KEY.FailoverPartner) &&
- userConnectionOptions[SqlConnectionString.KEY.FailoverPartner] == null)
+ if (userConnectionOptions.ContainsKey(DbConnectionStringKeywords.FailoverPartner) &&
+ userConnectionOptions[DbConnectionStringKeywords.FailoverPartner] == null)
{
- keywordToReplace = SqlConnectionString.KEY.Data_Source;
+ keywordToReplace = DbConnectionStringKeywords.DataSource;
}
else
{
- keywordToReplace = SqlConnectionString.KEY.FailoverPartner;
+ keywordToReplace = DbConnectionStringKeywords.FailoverPartner;
}
string failoverConnectionString = userConnectionOptions.ExpandKeyword(keywordToReplace, actualFailoverPartner);
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlClientPermission.netfx.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlClientPermission.netfx.cs
index 5c72383b8f..0b8da2a31c 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlClientPermission.netfx.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlClientPermission.netfx.cs
@@ -106,7 +106,7 @@ private bool _IsUnrestricted
///
public override void Add(string connectionString, string restrictions, KeyRestrictionBehavior behavior)
{
- DbConnectionString constr = new DbConnectionString(connectionString, restrictions, behavior, SqlConnectionString.GetParseSynonyms(), false);
+ DbConnectionString constr = new DbConnectionString(connectionString, restrictions, behavior, SqlConnectionString.KeywordMap, false);
AddPermissionEntry(constr);
}
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionEncryptOption.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionEncryptOption.cs
index 997833437f..833132c944 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionEncryptOption.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionEncryptOption.cs
@@ -5,6 +5,7 @@
using System;
using System.ComponentModel;
using Microsoft.Data.Common;
+using Microsoft.Data.Common.ConnectionString;
namespace Microsoft.Data.SqlClient
{
@@ -41,7 +42,7 @@ public static SqlConnectionEncryptOption Parse(string value)
}
else
{
- throw ADP.InvalidConnectionOptionValue(SqlConnectionString.KEY.Encrypt);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.Encrypt);
}
}
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionString.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionString.cs
index 3816e74e49..4637a2708a 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionString.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionString.cs
@@ -24,179 +24,6 @@ internal sealed class SqlConnectionString : DbConnectionOptions
// used by pooling classes so it is much easier to verify correctness
// when not worried about the class being modified during execution
- // @TODO: Remove this in favor of using DbConnectionStringDefaults??
- internal static class DEFAULT
- {
- internal const ApplicationIntent ApplicationIntent = DbConnectionStringDefaults.ApplicationIntent;
- internal const string Application_Name = DbConnectionStringDefaults.ApplicationName;
- internal const string AttachDBFilename = DbConnectionStringDefaults.AttachDBFilename;
- internal const int Command_Timeout = DbConnectionStringDefaults.CommandTimeout;
- internal const int Connect_Timeout = DbConnectionStringDefaults.ConnectTimeout;
- internal const string Current_Language = DbConnectionStringDefaults.CurrentLanguage;
- internal const string Data_Source = DbConnectionStringDefaults.DataSource;
- internal static readonly SqlConnectionEncryptOption Encrypt = DbConnectionStringDefaults.Encrypt;
- internal const string HostNameInCertificate = DbConnectionStringDefaults.HostNameInCertificate;
- internal const string ServerCertificate = DbConnectionStringDefaults.ServerCertificate;
- internal const bool Enlist = DbConnectionStringDefaults.Enlist;
- internal const string FailoverPartner = DbConnectionStringDefaults.FailoverPartner;
- internal const string Initial_Catalog = DbConnectionStringDefaults.InitialCatalog;
- internal const bool Integrated_Security = DbConnectionStringDefaults.IntegratedSecurity;
- internal const int Load_Balance_Timeout = DbConnectionStringDefaults.LoadBalanceTimeout;
- internal const bool MARS = DbConnectionStringDefaults.MultipleActiveResultSets;
- internal const int Max_Pool_Size = DbConnectionStringDefaults.MaxPoolSize;
- internal const int Min_Pool_Size = DbConnectionStringDefaults.MinPoolSize;
- internal const bool MultiSubnetFailover = DbConnectionStringDefaults.MultiSubnetFailover;
- internal const int Packet_Size = DbConnectionStringDefaults.PacketSize;
- internal const string Password = DbConnectionStringDefaults.Password;
- internal const bool Persist_Security_Info = DbConnectionStringDefaults.PersistSecurityInfo;
- internal const PoolBlockingPeriod PoolBlockingPeriod = DbConnectionStringDefaults.PoolBlockingPeriod;
- internal const bool Pooling = DbConnectionStringDefaults.Pooling;
- internal const bool TrustServerCertificate = DbConnectionStringDefaults.TrustServerCertificate;
- internal const string Type_System_Version = DbConnectionStringDefaults.TypeSystemVersion;
- internal const string User_ID = DbConnectionStringDefaults.UserID;
- internal const bool User_Instance = DbConnectionStringDefaults.UserInstance;
- internal const bool Replication = DbConnectionStringDefaults.Replication;
- internal const int Connect_Retry_Count = DbConnectionStringDefaults.ConnectRetryCount;
- internal const int Connect_Retry_Interval = DbConnectionStringDefaults.ConnectRetryInterval;
- internal const string EnclaveAttestationUrl = DbConnectionStringDefaults.EnclaveAttestationUrl;
- internal const SqlConnectionColumnEncryptionSetting ColumnEncryptionSetting = DbConnectionStringDefaults.ColumnEncryptionSetting;
- internal static readonly SqlAuthenticationMethod Authentication = DbConnectionStringDefaults.Authentication;
- internal static readonly SqlConnectionAttestationProtocol AttestationProtocol = DbConnectionStringDefaults.AttestationProtocol;
- internal static readonly SqlConnectionIPAddressPreference IpAddressPreference = DbConnectionStringDefaults.IPAddressPreference;
- internal const string ServerSPN = DbConnectionStringDefaults.ServerSPN;
- internal const string FailoverPartnerSPN = DbConnectionStringDefaults.FailoverPartnerSPN;
- internal const bool Context_Connection = DbConnectionStringDefaults.ContextConnection;
-#if NETFRAMEWORK
- internal static readonly bool TransparentNetworkIPResolution = DbConnectionStringDefaults.TransparentNetworkIPResolution;
- internal const bool Connection_Reset = DbConnectionStringDefaults.ConnectionReset;
- internal const string Network_Library = DbConnectionStringDefaults.NetworkLibrary;
-#endif // NETFRAMEWORK
- }
-
- // @TODO: Remove in favor of DbConnectionStringKeywords
- // SqlConnection ConnectionString Options
- internal static class KEY
- {
- internal const string ApplicationIntent = DbConnectionStringKeywords.ApplicationIntent;
- internal const string Application_Name = DbConnectionStringKeywords.ApplicationName;
- internal const string AttachDBFilename = DbConnectionStringKeywords.AttachDBFilename;
- internal const string PoolBlockingPeriod = DbConnectionStringKeywords.PoolBlockingPeriod;
- internal const string ColumnEncryptionSetting = DbConnectionStringKeywords.ColumnEncryptionSetting;
- internal const string EnclaveAttestationUrl = DbConnectionStringKeywords.EnclaveAttestationUrl;
- internal const string AttestationProtocol = DbConnectionStringKeywords.AttestationProtocol;
- internal const string IPAddressPreference = DbConnectionStringKeywords.IPAddressPreference;
-
- internal const string Command_Timeout = DbConnectionStringKeywords.CommandTimeout;
- internal const string Connect_Timeout = DbConnectionStringKeywords.ConnectTimeout;
- internal const string Connection_Reset = DbConnectionStringKeywords.ConnectionReset;
- internal const string Context_Connection = DbConnectionStringKeywords.ContextConnection;
- internal const string Current_Language = DbConnectionStringKeywords.CurrentLanguage;
- internal const string Data_Source = DbConnectionStringKeywords.DataSource;
-
- // Encrypt related
- internal const string Encrypt = DbConnectionStringKeywords.Encrypt;
- internal const string HostNameInCertificate = DbConnectionStringKeywords.HostNameInCertificate;
- internal const string ServerCertificate = DbConnectionStringKeywords.ServerCertificate;
-
- internal const string Enlist = DbConnectionStringKeywords.Enlist;
- internal const string FailoverPartner = DbConnectionStringKeywords.FailoverPartner;
- internal const string Initial_Catalog = DbConnectionStringKeywords.InitialCatalog;
- internal const string Integrated_Security = DbConnectionStringKeywords.IntegratedSecurity;
- internal const string Load_Balance_Timeout = DbConnectionStringKeywords.LoadBalanceTimeout;
- internal const string MARS = DbConnectionStringKeywords.MultipleActiveResultSets;
- internal const string Max_Pool_Size = DbConnectionStringKeywords.MaxPoolSize;
- internal const string Min_Pool_Size = DbConnectionStringKeywords.MinPoolSize;
- internal const string MultiSubnetFailover = DbConnectionStringKeywords.MultiSubnetFailover;
- internal const string Network_Library = DbConnectionStringKeywords.NetworkLibrary;
- internal const string Packet_Size = DbConnectionStringKeywords.PacketSize;
- internal const string Password = DbConnectionStringKeywords.Password;
- internal const string Persist_Security_Info = DbConnectionStringKeywords.PersistSecurityInfo;
- internal const string Pooling = DbConnectionStringKeywords.Pooling;
- internal const string TransactionBinding = DbConnectionStringKeywords.TransactionBinding;
- internal const string TrustServerCertificate = DbConnectionStringKeywords.TrustServerCertificate;
- internal const string Type_System_Version = DbConnectionStringKeywords.TypeSystemVersion;
- internal const string User_ID = DbConnectionStringKeywords.UserID;
- internal const string User_Instance = DbConnectionStringKeywords.UserInstance;
- internal const string Workstation_Id = DbConnectionStringKeywords.WorkstationID;
- internal const string Replication = DbConnectionStringKeywords.Replication;
- internal const string Connect_Retry_Count = DbConnectionStringKeywords.ConnectRetryCount;
- internal const string Connect_Retry_Interval = DbConnectionStringKeywords.ConnectRetryInterval;
- internal const string Authentication = DbConnectionStringKeywords.Authentication;
- internal const string Server_SPN = DbConnectionStringKeywords.ServerSPN;
- internal const string Failover_Partner_SPN = DbConnectionStringKeywords.FailoverPartnerSPN;
-#if NETFRAMEWORK
- internal const string TransparentNetworkIPResolution = DbConnectionStringKeywords.TransparentNetworkIPResolution;
-#endif // NETFRAMEWORK
- }
-
- // @TODO: Remove in favor DbConnectionStringSynonyms
- // Constant for the number of duplicate options in the connection string
- private static class SYNONYM
- {
- // ip address preference
- internal const string IPADDRESSPREFERENCE = DbConnectionStringSynonyms.IPADDRESSPREFERENCE;
- //application intent
- internal const string APPLICATIONINTENT = DbConnectionStringSynonyms.APPLICATIONINTENT;
- // application name
- internal const string APP = DbConnectionStringSynonyms.APP;
- // attachDBFilename
- internal const string EXTENDED_PROPERTIES = DbConnectionStringSynonyms.EXTENDEDPROPERTIES;
- internal const string INITIAL_FILE_NAME = DbConnectionStringSynonyms.INITIALFILENAME;
- // connect timeout
- internal const string CONNECTION_TIMEOUT = DbConnectionStringSynonyms.CONNECTIONTIMEOUT;
- internal const string TIMEOUT = DbConnectionStringSynonyms.TIMEOUT;
- // current language
- internal const string LANGUAGE = DbConnectionStringSynonyms.LANGUAGE;
- // data source
- internal const string ADDR = DbConnectionStringSynonyms.ADDR;
- internal const string ADDRESS = DbConnectionStringSynonyms.ADDRESS;
- internal const string SERVER = DbConnectionStringSynonyms.SERVER;
- internal const string NETWORK_ADDRESS = DbConnectionStringSynonyms.NETWORKADDRESS;
- // host name in certificate
- internal const string HOSTNAMEINCERTIFICATE = DbConnectionStringSynonyms.HOSTNAMEINCERTIFICATE;
- // server certificate
- internal const string SERVERCERTIFICATE = DbConnectionStringSynonyms.SERVERCERTIFICATE;
- // initial catalog
- internal const string DATABASE = DbConnectionStringSynonyms.DATABASE;
- // integrated security
- internal const string TRUSTED_CONNECTION = DbConnectionStringSynonyms.TRUSTEDCONNECTION;
- //connect retry count
- internal const string CONNECTRETRYCOUNT = DbConnectionStringSynonyms.CONNECTRETRYCOUNT;
- //connect retry interval
- internal const string CONNECTRETRYINTERVAL = DbConnectionStringSynonyms.CONNECTRETRYINTERVAL;
- // load balance timeout
- internal const string Connection_Lifetime = DbConnectionStringSynonyms.ConnectionLifetime;
- // multiple active result sets
- internal const string MULTIPLEACTIVERESULTSETS = DbConnectionStringSynonyms.MULTIPLEACTIVERESULTSETS;
- // multi subnet failover
- internal const string MULTISUBNETFAILOVER = DbConnectionStringSynonyms.MULTISUBNETFAILOVER;
- // network library
- internal const string NET = DbConnectionStringSynonyms.NET;
- internal const string NETWORK = DbConnectionStringSynonyms.NETWORK;
- // pool blocking period
- internal const string POOLBLOCKINGPERIOD = DbConnectionStringSynonyms.POOLBLOCKINGPERIOD;
- // password
- internal const string Pwd = DbConnectionStringSynonyms.Pwd;
- // persist security info
- internal const string PERSISTSECURITYINFO = DbConnectionStringSynonyms.PERSISTSECURITYINFO;
- // trust server certificate
- internal const string TRUSTSERVERCERTIFICATE = DbConnectionStringSynonyms.TRUSTSERVERCERTIFICATE;
- // user id
- internal const string UID = DbConnectionStringSynonyms.UID;
- internal const string User = DbConnectionStringSynonyms.User;
- // workstation id
- internal const string WSID = DbConnectionStringSynonyms.WSID;
- // server SPNs
- internal const string ServerSPN = DbConnectionStringSynonyms.ServerSPN;
- internal const string FailoverPartnerSPN = DbConnectionStringSynonyms.FailoverPartnerSPN;
-
-#if NETFRAMEWORK
- internal const string TRANSPARENTNETWORKIPRESOLUTION = DbConnectionStringSynonyms.TRANSPARENTNETWORKIPRESOLUTION;
-#endif
-
- // make sure to update SynonymCount value below when adding or removing synonyms
- }
-
internal enum TypeSystem
{
Latest = 2008,
@@ -226,14 +53,9 @@ internal static class TRANSACTIONBINDING
internal const string ImplicitUnbind = "Implicit Unbind";
internal const string ExplicitUnbind = "Explicit Unbind";
}
-
-#if NETFRAMEWORK
- internal const int SynonymCount = 33;
-#else
- internal const int SynonymCount = 30;
-#endif // NETFRAMEWORK
-
- private static Dictionary s_sqlClientSynonyms;
+
+ private static readonly Dictionary s_keywordMap =
+ new Dictionary(StringComparer.InvariantCultureIgnoreCase);
private readonly bool _integratedSecurity;
@@ -288,17 +110,111 @@ internal static class TRANSACTIONBINDING
private static readonly Version s_constTypeSystemAsmVersion11 = new("11.0.0.0");
private readonly string _expandedAttachDBFilename; // expanded during construction so that CreatePermissionSet & Expand are consistent
-
+
+ #region Constructors
+
+ ///
+ /// Static constructor to do things that we can't do in a single line initialization.
+ ///
+ static SqlConnectionString()
+ {
+ // Add keywords and synonyms to the keyword map.
+ // @TODO: About half of these synonyms are just the same as the keyword but with spaces
+ // removed. However, not all multiword keywords are supported without spaces. We
+ // should just add support for all keywords w/ or w/o spaces, then remove them from
+ // synonyms.
+ AddKeywordToMap(DbConnectionStringKeywords.ApplicationIntent,
+ DbConnectionStringSynonyms.ApplicationIntent);
+ AddKeywordToMap(DbConnectionStringKeywords.ApplicationName,
+ DbConnectionStringSynonyms.App);
+ AddKeywordToMap(DbConnectionStringKeywords.AttachDbFilename,
+ DbConnectionStringSynonyms.ExtendedProperties,
+ DbConnectionStringSynonyms.InitialFileName);
+ AddKeywordToMap(DbConnectionStringKeywords.AttestationProtocol);
+ AddKeywordToMap(DbConnectionStringKeywords.Authentication);
+ AddKeywordToMap(DbConnectionStringKeywords.ColumnEncryptionSetting);
+ AddKeywordToMap(DbConnectionStringKeywords.CommandTimeout);
+ AddKeywordToMap(DbConnectionStringKeywords.ConnectRetryCount,
+ DbConnectionStringSynonyms.ConnectRetryCount);
+ AddKeywordToMap(DbConnectionStringKeywords.ConnectRetryInterval,
+ DbConnectionStringSynonyms.ConnectRetryInterval);
+ AddKeywordToMap(DbConnectionStringKeywords.ConnectTimeout,
+ DbConnectionStringSynonyms.ConnectionTimeout,
+ DbConnectionStringSynonyms.Timeout);
+ AddKeywordToMap(DbConnectionStringKeywords.ContextConnection);
+ AddKeywordToMap(DbConnectionStringKeywords.CurrentLanguage,
+ DbConnectionStringSynonyms.Language);
+ AddKeywordToMap(DbConnectionStringKeywords.DataSource,
+ DbConnectionStringSynonyms.Addr,
+ DbConnectionStringSynonyms.Address,
+ DbConnectionStringSynonyms.NetworkAddress,
+ DbConnectionStringSynonyms.Server);
+ AddKeywordToMap(DbConnectionStringKeywords.EnclaveAttestationUrl);
+ AddKeywordToMap(DbConnectionStringKeywords.Encrypt);
+ AddKeywordToMap(DbConnectionStringKeywords.Enlist);
+ AddKeywordToMap(DbConnectionStringKeywords.FailoverPartner);
+ AddKeywordToMap(DbConnectionStringKeywords.FailoverPartnerSpn,
+ DbConnectionStringSynonyms.FailoverPartnerSpn);
+ AddKeywordToMap(DbConnectionStringKeywords.HostNameInCertificate,
+ DbConnectionStringSynonyms.HostNameInCertificate);
+ AddKeywordToMap(DbConnectionStringKeywords.InitialCatalog,
+ DbConnectionStringSynonyms.Database);
+ AddKeywordToMap(DbConnectionStringKeywords.IntegratedSecurity,
+ DbConnectionStringSynonyms.TrustedConnection);
+ AddKeywordToMap(DbConnectionStringKeywords.IpAddressPreference,
+ DbConnectionStringSynonyms.IpAddressPreference);
+ AddKeywordToMap(DbConnectionStringKeywords.LoadBalanceTimeout,
+ DbConnectionStringSynonyms.ConnectionLifetime);
+ AddKeywordToMap(DbConnectionStringKeywords.MultipleActiveResultSets,
+ DbConnectionStringSynonyms.MultipleActiveResultSets);
+ AddKeywordToMap(DbConnectionStringKeywords.MaxPoolSize);
+ AddKeywordToMap(DbConnectionStringKeywords.MinPoolSize);
+ AddKeywordToMap(DbConnectionStringKeywords.MultiSubnetFailover,
+ DbConnectionStringSynonyms.MultiSubnetFailover);
+ AddKeywordToMap(DbConnectionStringKeywords.PacketSize);
+ AddKeywordToMap(DbConnectionStringKeywords.Password,
+ DbConnectionStringSynonyms.Pwd);
+ AddKeywordToMap(DbConnectionStringKeywords.PersistSecurityInfo,
+ DbConnectionStringSynonyms.PersistSecurityInfo);
+ AddKeywordToMap(DbConnectionStringKeywords.Pooling);
+ AddKeywordToMap(DbConnectionStringKeywords.PoolBlockingPeriod,
+ DbConnectionStringSynonyms.PoolBlockingPeriod);
+ AddKeywordToMap(DbConnectionStringKeywords.Replication);
+ AddKeywordToMap(DbConnectionStringKeywords.ServerCertificate,
+ DbConnectionStringSynonyms.ServerCertificate);
+ AddKeywordToMap(DbConnectionStringKeywords.ServerSpn,
+ DbConnectionStringSynonyms.ServerSpn);
+ AddKeywordToMap(DbConnectionStringKeywords.TrustServerCertificate,
+ DbConnectionStringSynonyms.TrustServerCertificate);
+ AddKeywordToMap(DbConnectionStringKeywords.TransactionBinding);
+ AddKeywordToMap(DbConnectionStringKeywords.TypeSystemVersion);
+ AddKeywordToMap(DbConnectionStringKeywords.UserId,
+ DbConnectionStringSynonyms.Uid,
+ DbConnectionStringSynonyms.User);
+ AddKeywordToMap(DbConnectionStringKeywords.UserInstance);
+ AddKeywordToMap(DbConnectionStringKeywords.WorkstationId,
+ DbConnectionStringSynonyms.WsId);
+
+ #if NETFRAMEWORK
+ AddKeywordToMap(DbConnectionStringKeywords.ConnectionReset);
+ AddKeywordToMap(DbConnectionStringKeywords.NetworkLibrary,
+ DbConnectionStringSynonyms.Net,
+ DbConnectionStringSynonyms.Network);
+ AddKeywordToMap(DbConnectionStringKeywords.TransparentNetworkIpResolution,
+ DbConnectionStringSynonyms.TransparentNetworkIpResolution);
+ #endif
+ }
+
// SxS: reading Software\\Microsoft\\MSSQLServer\\Client\\SuperSocketNetLib\Encrypt value from registry
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
- internal SqlConnectionString(string connectionString) : base(connectionString, GetParseSynonyms())
+ internal SqlConnectionString(string connectionString): base(connectionString, s_keywordMap)
{
#if !NETFRAMEWORK
- ThrowUnsupportedIfKeywordSet(KEY.Connection_Reset);
+ ThrowUnsupportedIfKeywordSet(DbConnectionStringKeywords.ConnectionReset);
// Network Library has its own special error message
- if (ContainsKey(KEY.Network_Library))
+ if (ContainsKey(DbConnectionStringKeywords.NetworkLibrary))
{
throw SQL.NetworkLibraryKeywordNotSupported();
}
@@ -307,50 +223,50 @@ internal SqlConnectionString(string connectionString) : base(connectionString, G
_integratedSecurity = ConvertValueToIntegratedSecurity();
_poolBlockingPeriod = ConvertValueToPoolBlockingPeriod();
_encrypt = ConvertValueToSqlConnectionEncrypt();
- _enlist = ConvertValueToBoolean(KEY.Enlist, DEFAULT.Enlist);
- _mars = ConvertValueToBoolean(KEY.MARS, DEFAULT.MARS);
- _persistSecurityInfo = ConvertValueToBoolean(KEY.Persist_Security_Info, DEFAULT.Persist_Security_Info);
- _pooling = ConvertValueToBoolean(KEY.Pooling, DEFAULT.Pooling);
- _replication = ConvertValueToBoolean(KEY.Replication, DEFAULT.Replication);
- _userInstance = ConvertValueToBoolean(KEY.User_Instance, DEFAULT.User_Instance);
- _multiSubnetFailover = ConvertValueToBoolean(KEY.MultiSubnetFailover, DEFAULT.MultiSubnetFailover);
-
- _commandTimeout = ConvertValueToInt32(KEY.Command_Timeout, DEFAULT.Command_Timeout);
- _connectTimeout = ConvertValueToInt32(KEY.Connect_Timeout, DEFAULT.Connect_Timeout);
- _loadBalanceTimeout = ConvertValueToInt32(KEY.Load_Balance_Timeout, DEFAULT.Load_Balance_Timeout);
- _maxPoolSize = ConvertValueToInt32(KEY.Max_Pool_Size, DEFAULT.Max_Pool_Size);
- _minPoolSize = ConvertValueToInt32(KEY.Min_Pool_Size, DEFAULT.Min_Pool_Size);
- _packetSize = ConvertValueToInt32(KEY.Packet_Size, DEFAULT.Packet_Size);
- _connectRetryCount = ConvertValueToInt32(KEY.Connect_Retry_Count, DEFAULT.Connect_Retry_Count);
- _connectRetryInterval = ConvertValueToInt32(KEY.Connect_Retry_Interval, DEFAULT.Connect_Retry_Interval);
+ _enlist = ConvertValueToBoolean(DbConnectionStringKeywords.Enlist, DbConnectionStringDefaults.Enlist);
+ _mars = ConvertValueToBoolean(DbConnectionStringKeywords.MultipleActiveResultSets, DbConnectionStringDefaults.MultipleActiveResultSets);
+ _persistSecurityInfo = ConvertValueToBoolean(DbConnectionStringKeywords.PersistSecurityInfo, DbConnectionStringDefaults.PersistSecurityInfo);
+ _pooling = ConvertValueToBoolean(DbConnectionStringKeywords.Pooling, DbConnectionStringDefaults.Pooling);
+ _replication = ConvertValueToBoolean(DbConnectionStringKeywords.Replication, DbConnectionStringDefaults.Replication);
+ _userInstance = ConvertValueToBoolean(DbConnectionStringKeywords.UserInstance, DbConnectionStringDefaults.UserInstance);
+ _multiSubnetFailover = ConvertValueToBoolean(DbConnectionStringKeywords.MultiSubnetFailover, DbConnectionStringDefaults.MultiSubnetFailover);
+
+ _commandTimeout = ConvertValueToInt32(DbConnectionStringKeywords.CommandTimeout, DbConnectionStringDefaults.CommandTimeout);
+ _connectTimeout = ConvertValueToInt32(DbConnectionStringKeywords.ConnectTimeout, DbConnectionStringDefaults.ConnectTimeout);
+ _loadBalanceTimeout = ConvertValueToInt32(DbConnectionStringKeywords.LoadBalanceTimeout, DbConnectionStringDefaults.LoadBalanceTimeout);
+ _maxPoolSize = ConvertValueToInt32(DbConnectionStringKeywords.MaxPoolSize, DbConnectionStringDefaults.MaxPoolSize);
+ _minPoolSize = ConvertValueToInt32(DbConnectionStringKeywords.MinPoolSize, DbConnectionStringDefaults.MinPoolSize);
+ _packetSize = ConvertValueToInt32(DbConnectionStringKeywords.PacketSize, DbConnectionStringDefaults.PacketSize);
+ _connectRetryCount = ConvertValueToInt32(DbConnectionStringKeywords.ConnectRetryCount, DbConnectionStringDefaults.ConnectRetryCount);
+ _connectRetryInterval = ConvertValueToInt32(DbConnectionStringKeywords.ConnectRetryInterval, DbConnectionStringDefaults.ConnectRetryInterval);
_applicationIntent = ConvertValueToApplicationIntent();
- _applicationName = ConvertValueToString(KEY.Application_Name, DEFAULT.Application_Name);
- _attachDBFileName = ConvertValueToString(KEY.AttachDBFilename, DEFAULT.AttachDBFilename);
- _contextConnection = ConvertValueToBoolean(KEY.Context_Connection, DEFAULT.Context_Connection);
- _currentLanguage = ConvertValueToString(KEY.Current_Language, DEFAULT.Current_Language);
- _dataSource = ConvertValueToString(KEY.Data_Source, DEFAULT.Data_Source);
+ _applicationName = ConvertValueToString(DbConnectionStringKeywords.ApplicationName, DbConnectionStringDefaults.ApplicationName);
+ _attachDBFileName = ConvertValueToString(DbConnectionStringKeywords.AttachDbFilename, DbConnectionStringDefaults.AttachDbFilename);
+ _contextConnection = ConvertValueToBoolean(DbConnectionStringKeywords.ContextConnection, DbConnectionStringDefaults.ContextConnection);
+ _currentLanguage = ConvertValueToString(DbConnectionStringKeywords.CurrentLanguage, DbConnectionStringDefaults.CurrentLanguage);
+ _dataSource = ConvertValueToString(DbConnectionStringKeywords.DataSource, DbConnectionStringDefaults.DataSource);
_localDBInstance = LocalDbApi.GetLocalDbInstanceNameFromServerName(_dataSource);
- _failoverPartner = ConvertValueToString(KEY.FailoverPartner, DEFAULT.FailoverPartner);
- _initialCatalog = ConvertValueToString(KEY.Initial_Catalog, DEFAULT.Initial_Catalog);
- _password = ConvertValueToString(KEY.Password, DEFAULT.Password);
- _trustServerCertificate = ConvertValueToBoolean(KEY.TrustServerCertificate, DEFAULT.TrustServerCertificate);
+ _failoverPartner = ConvertValueToString(DbConnectionStringKeywords.FailoverPartner, DbConnectionStringDefaults.FailoverPartner);
+ _initialCatalog = ConvertValueToString(DbConnectionStringKeywords.InitialCatalog, DbConnectionStringDefaults.InitialCatalog);
+ _password = ConvertValueToString(DbConnectionStringKeywords.Password, DbConnectionStringDefaults.Password);
+ _trustServerCertificate = ConvertValueToBoolean(DbConnectionStringKeywords.TrustServerCertificate, DbConnectionStringDefaults.TrustServerCertificate);
_authType = ConvertValueToAuthenticationType();
_columnEncryptionSetting = ConvertValueToColumnEncryptionSetting();
- _enclaveAttestationUrl = ConvertValueToString(KEY.EnclaveAttestationUrl, DEFAULT.EnclaveAttestationUrl);
+ _enclaveAttestationUrl = ConvertValueToString(DbConnectionStringKeywords.EnclaveAttestationUrl, DbConnectionStringDefaults.EnclaveAttestationUrl);
_attestationProtocol = ConvertValueToAttestationProtocol();
_ipAddressPreference = ConvertValueToIPAddressPreference();
- _hostNameInCertificate = ConvertValueToString(KEY.HostNameInCertificate, DEFAULT.HostNameInCertificate);
- _serverCertificate = ConvertValueToString(KEY.ServerCertificate, DEFAULT.ServerCertificate);
- _serverSPN = ConvertValueToString(KEY.Server_SPN, DEFAULT.ServerSPN);
- _failoverPartnerSPN = ConvertValueToString(KEY.Failover_Partner_SPN, DEFAULT.FailoverPartnerSPN);
+ _hostNameInCertificate = ConvertValueToString(DbConnectionStringKeywords.HostNameInCertificate, DbConnectionStringDefaults.HostNameInCertificate);
+ _serverCertificate = ConvertValueToString(DbConnectionStringKeywords.ServerCertificate, DbConnectionStringDefaults.ServerCertificate);
+ _serverSPN = ConvertValueToString(DbConnectionStringKeywords.ServerSpn, DbConnectionStringDefaults.ServerSpn);
+ _failoverPartnerSPN = ConvertValueToString(DbConnectionStringKeywords.FailoverPartnerSpn, DbConnectionStringDefaults.FailoverPartnerSpn);
// Temporary string - this value is stored internally as an enum.
- string typeSystemVersionString = ConvertValueToString(KEY.Type_System_Version, null);
- string transactionBindingString = ConvertValueToString(KEY.TransactionBinding, null);
+ string typeSystemVersionString = ConvertValueToString(DbConnectionStringKeywords.TypeSystemVersion, null);
+ string transactionBindingString = ConvertValueToString(DbConnectionStringKeywords.TransactionBinding, null);
- _userID = ConvertValueToString(KEY.User_ID, DEFAULT.User_ID);
- _workstationId = ConvertValueToString(KEY.Workstation_Id, null);
+ _userID = ConvertValueToString(DbConnectionStringKeywords.UserId, DbConnectionStringDefaults.UserId);
+ _workstationId = ConvertValueToString(DbConnectionStringKeywords.WorkstationId, null);
if (_contextConnection)
{
@@ -359,27 +275,27 @@ internal SqlConnectionString(string connectionString) : base(connectionString, G
if (_loadBalanceTimeout < 0)
{
- throw ADP.InvalidConnectionOptionValue(KEY.Load_Balance_Timeout);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.LoadBalanceTimeout);
}
if (_connectTimeout < 0)
{
- throw ADP.InvalidConnectionOptionValue(KEY.Connect_Timeout);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.ConnectTimeout);
}
if (_commandTimeout < 0)
{
- throw ADP.InvalidConnectionOptionValue(KEY.Command_Timeout);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.CommandTimeout);
}
if (_maxPoolSize < 1)
{
- throw ADP.InvalidConnectionOptionValue(KEY.Max_Pool_Size);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.MaxPoolSize);
}
if (_minPoolSize < 0)
{
- throw ADP.InvalidConnectionOptionValue(KEY.Min_Pool_Size);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.MinPoolSize);
}
if (_maxPoolSize < _minPoolSize)
{
@@ -393,9 +309,9 @@ internal SqlConnectionString(string connectionString) : base(connectionString, G
#if NETFRAMEWORK
// SQLPT 41700: Ignore ResetConnection=False (still validate the keyword/value)
- _connectionReset = ConvertValueToBoolean(KEY.Connection_Reset, DEFAULT.Connection_Reset);
- _transparentNetworkIPResolution = ConvertValueToBoolean(KEY.TransparentNetworkIPResolution, DEFAULT.TransparentNetworkIPResolution);
- _networkLibrary = ConvertValueToString(KEY.Network_Library, null);
+ _connectionReset = ConvertValueToBoolean(DbConnectionStringKeywords.ConnectionReset, DbConnectionStringDefaults.ConnectionReset);
+ _transparentNetworkIPResolution = ConvertValueToBoolean(DbConnectionStringKeywords.TransparentNetworkIpResolution, DbConnectionStringDefaults.TransparentNetworkIpResolution);
+ _networkLibrary = ConvertValueToString(DbConnectionStringKeywords.NetworkLibrary, null);
if (_networkLibrary != null)
{ // MDAC 83525
@@ -403,13 +319,13 @@ internal SqlConnectionString(string connectionString) : base(connectionString, G
Dictionary netlib = NetlibMapping();
if (!netlib.ContainsKey(networkLibrary))
{
- throw ADP.InvalidConnectionOptionValue(KEY.Network_Library);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.NetworkLibrary);
}
_networkLibrary = netlib[networkLibrary];
}
else
{
- _networkLibrary = DEFAULT.Network_Library;
+ _networkLibrary = DbConnectionStringDefaults.NetworkLibrary;
}
#endif // NETFRAMEWORK
@@ -425,19 +341,19 @@ internal SqlConnectionString(string connectionString) : base(connectionString, G
}
}
- ValidateValueLength(_applicationName, TdsEnums.MAXLEN_APPNAME, KEY.Application_Name);
- ValidateValueLength(_currentLanguage, TdsEnums.MAXLEN_LANGUAGE, KEY.Current_Language);
- ValidateValueLength(_dataSource, TdsEnums.MAXLEN_SERVERNAME, KEY.Data_Source);
- ValidateValueLength(_failoverPartner, TdsEnums.MAXLEN_SERVERNAME, KEY.FailoverPartner);
- ValidateValueLength(_initialCatalog, TdsEnums.MAXLEN_DATABASE, KEY.Initial_Catalog);
- ValidateValueLength(_password, TdsEnums.MAXLEN_CLIENTSECRET, KEY.Password);
- ValidateValueLength(_userID, TdsEnums.MAXLEN_CLIENTID, KEY.User_ID);
+ ValidateValueLength(_applicationName, TdsEnums.MAXLEN_APPNAME, DbConnectionStringKeywords.ApplicationName);
+ ValidateValueLength(_currentLanguage, TdsEnums.MAXLEN_LANGUAGE, DbConnectionStringKeywords.CurrentLanguage);
+ ValidateValueLength(_dataSource, TdsEnums.MAXLEN_SERVERNAME, DbConnectionStringKeywords.DataSource);
+ ValidateValueLength(_failoverPartner, TdsEnums.MAXLEN_SERVERNAME, DbConnectionStringKeywords.FailoverPartner);
+ ValidateValueLength(_initialCatalog, TdsEnums.MAXLEN_DATABASE, DbConnectionStringKeywords.InitialCatalog);
+ ValidateValueLength(_password, TdsEnums.MAXLEN_CLIENTSECRET, DbConnectionStringKeywords.Password);
+ ValidateValueLength(_userID, TdsEnums.MAXLEN_CLIENTID, DbConnectionStringKeywords.UserId);
if (_workstationId != null)
{
- ValidateValueLength(_workstationId, TdsEnums.MAXLEN_HOSTNAME, KEY.Workstation_Id);
+ ValidateValueLength(_workstationId, TdsEnums.MAXLEN_HOSTNAME, DbConnectionStringKeywords.WorkstationId);
}
- if (!string.Equals(DEFAULT.FailoverPartner, _failoverPartner, StringComparison.OrdinalIgnoreCase))
+ if (!string.Equals(DbConnectionStringDefaults.FailoverPartner, _failoverPartner, StringComparison.OrdinalIgnoreCase))
{
// fail-over partner is set
@@ -446,21 +362,21 @@ internal SqlConnectionString(string connectionString) : base(connectionString, G
throw SQL.MultiSubnetFailoverWithFailoverPartner(serverProvidedFailoverPartner: false, internalConnection: null);
}
- if (string.Equals(DEFAULT.Initial_Catalog, _initialCatalog, StringComparison.OrdinalIgnoreCase))
+ if (string.Equals(DbConnectionStringDefaults.InitialCatalog, _initialCatalog, StringComparison.OrdinalIgnoreCase))
{
- throw ADP.MissingConnectionOptionValue(KEY.FailoverPartner, KEY.Initial_Catalog);
+ throw ADP.MissingConnectionOptionValue(DbConnectionStringKeywords.FailoverPartner, DbConnectionStringKeywords.InitialCatalog);
}
}
// expand during construction so that CreatePermissionSet and Expand are consistent
- _expandedAttachDBFilename = ExpandDataDirectory(KEY.AttachDBFilename, _attachDBFileName);
+ _expandedAttachDBFilename = ExpandDataDirectory(DbConnectionStringKeywords.AttachDbFilename, _attachDBFileName);
if (_expandedAttachDBFilename != null)
{
if (0 <= _expandedAttachDBFilename.IndexOf('|'))
{
- throw ADP.InvalidConnectionOptionValue(KEY.AttachDBFilename);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.AttachDbFilename);
}
- ValidateValueLength(_expandedAttachDBFilename, TdsEnums.MAXLEN_ATTACHDBFILE, KEY.AttachDBFilename);
+ ValidateValueLength(_expandedAttachDBFilename, TdsEnums.MAXLEN_ATTACHDBFILE, DbConnectionStringKeywords.AttachDbFilename);
if (_localDBInstance == null)
{
// fail fast to verify LocalHost when using |DataDirectory|
@@ -475,11 +391,11 @@ internal SqlConnectionString(string connectionString) : base(connectionString, G
}
else if (0 <= _attachDBFileName.IndexOf('|'))
{
- throw ADP.InvalidConnectionOptionValue(KEY.AttachDBFilename);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.AttachDbFilename);
}
else
{
- ValidateValueLength(_attachDBFileName, TdsEnums.MAXLEN_ATTACHDBFILE, KEY.AttachDBFilename);
+ ValidateValueLength(_attachDBFileName, TdsEnums.MAXLEN_ATTACHDBFILE, DbConnectionStringKeywords.AttachDbFilename);
}
_typeSystemAssemblyVersion = s_constTypeSystemAsmVersion10;
@@ -516,7 +432,7 @@ internal SqlConnectionString(string connectionString) : base(connectionString, G
}
else
{
- throw ADP.InvalidConnectionOptionValue(KEY.Type_System_Version);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.TypeSystemVersion);
}
if (string.IsNullOrEmpty(transactionBindingString))
@@ -534,7 +450,7 @@ internal SqlConnectionString(string connectionString) : base(connectionString, G
}
else
{
- throw ADP.InvalidConnectionOptionValue(KEY.TransactionBinding);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.TransactionBinding);
}
if (_applicationIntent == ApplicationIntent.ReadOnly && !string.IsNullOrEmpty(_failoverPartner))
@@ -652,11 +568,16 @@ internal SqlConnectionString(SqlConnectionString connectionOptions, string dataS
_networkLibrary = connectionOptions._networkLibrary;
_typeSystemAssemblyVersion = connectionOptions._typeSystemAssemblyVersion;
#endif // NETFRAMEWORK
- ValidateValueLength(_dataSource, TdsEnums.MAXLEN_SERVERNAME, KEY.Data_Source);
+ ValidateValueLength(_dataSource, TdsEnums.MAXLEN_SERVERNAME, DbConnectionStringKeywords.DataSource);
}
+ #endregion
+
internal bool IntegratedSecurity => _integratedSecurity;
+ // @TODO: This is temporary until we can remove DbConnectionString (see SqlClientPermission)
+ internal static IReadOnlyDictionary KeywordMap => s_keywordMap;
+
// We always initialize in Async mode so that both synchronous and asynchronous methods
// will work. In the future we can deprecate the keyword entirely.
internal bool Asynchronous => true;
@@ -724,7 +645,7 @@ protected internal override string Expand()
if (_expandedAttachDBFilename != null)
{
#if NETFRAMEWORK
- return ExpandKeyword(KEY.AttachDBFilename, _expandedAttachDBFilename);
+ return ExpandKeyword(DbConnectionStringKeywords.AttachDbFilename, _expandedAttachDBFilename);
#else
return ExpandAttachDbFileName(_expandedAttachDBFilename);
#endif
@@ -759,104 +680,6 @@ private static bool CompareHostName(ref string host, string name, bool fixup)
return equal;
}
- // This dictionary is meant to be read-only translation of parsed string
- // keywords/synonyms to a known keyword string.
- internal static Dictionary GetParseSynonyms()
- {
- Dictionary synonyms = s_sqlClientSynonyms;
- if (synonyms == null)
- {
-
- int count = SqlConnectionStringBuilder.KeywordsCount + SynonymCount;
- synonyms = new Dictionary(count, StringComparer.OrdinalIgnoreCase)
- {
- { KEY.ApplicationIntent, KEY.ApplicationIntent },
- { KEY.Application_Name, KEY.Application_Name },
- { KEY.AttachDBFilename, KEY.AttachDBFilename },
- { KEY.AttestationProtocol, KEY.AttestationProtocol},
- { KEY.Authentication, KEY.Authentication },
- { KEY.ColumnEncryptionSetting, KEY.ColumnEncryptionSetting },
- { KEY.Command_Timeout, KEY.Command_Timeout },
- { KEY.Connect_Retry_Count, KEY.Connect_Retry_Count },
- { KEY.Connect_Retry_Interval, KEY.Connect_Retry_Interval },
- { KEY.Connect_Timeout, KEY.Connect_Timeout },
- { KEY.Context_Connection, KEY.Context_Connection },
- { KEY.Current_Language, KEY.Current_Language },
- { KEY.Data_Source, KEY.Data_Source },
- { KEY.EnclaveAttestationUrl, KEY.EnclaveAttestationUrl },
- { KEY.Encrypt, KEY.Encrypt },
- { KEY.Enlist, KEY.Enlist },
- { KEY.FailoverPartner, KEY.FailoverPartner },
- { KEY.Failover_Partner_SPN, KEY.Failover_Partner_SPN },
- { KEY.HostNameInCertificate, KEY.HostNameInCertificate },
- { KEY.ServerCertificate, KEY.ServerCertificate},
- { KEY.Initial_Catalog, KEY.Initial_Catalog },
- { KEY.Integrated_Security, KEY.Integrated_Security },
- { KEY.IPAddressPreference, KEY.IPAddressPreference },
- { KEY.Load_Balance_Timeout, KEY.Load_Balance_Timeout },
- { KEY.MARS, KEY.MARS },
- { KEY.Max_Pool_Size, KEY.Max_Pool_Size },
- { KEY.Min_Pool_Size, KEY.Min_Pool_Size },
- { KEY.MultiSubnetFailover, KEY.MultiSubnetFailover },
- { KEY.Packet_Size, KEY.Packet_Size },
- { KEY.Password, KEY.Password },
- { KEY.Persist_Security_Info, KEY.Persist_Security_Info },
- { KEY.Pooling, KEY.Pooling },
- { KEY.PoolBlockingPeriod, KEY.PoolBlockingPeriod },
- { KEY.Replication, KEY.Replication },
- { KEY.Server_SPN, KEY.Server_SPN },
- { KEY.TrustServerCertificate, KEY.TrustServerCertificate },
- { KEY.TransactionBinding, KEY.TransactionBinding },
- { KEY.Type_System_Version, KEY.Type_System_Version },
- { KEY.User_ID, KEY.User_ID },
- { KEY.User_Instance, KEY.User_Instance },
- { KEY.Workstation_Id, KEY.Workstation_Id },
-
- { SYNONYM.IPADDRESSPREFERENCE, KEY.IPAddressPreference },
- { SYNONYM.APP, KEY.Application_Name },
- { SYNONYM.APPLICATIONINTENT, KEY.ApplicationIntent },
- { SYNONYM.EXTENDED_PROPERTIES, KEY.AttachDBFilename },
- { SYNONYM.HOSTNAMEINCERTIFICATE, KEY.HostNameInCertificate },
- { SYNONYM.SERVERCERTIFICATE, KEY.ServerCertificate},
- { SYNONYM.INITIAL_FILE_NAME, KEY.AttachDBFilename },
- { SYNONYM.CONNECTRETRYCOUNT, KEY.Connect_Retry_Count },
- { SYNONYM.CONNECTRETRYINTERVAL, KEY.Connect_Retry_Interval },
- { SYNONYM.CONNECTION_TIMEOUT, KEY.Connect_Timeout },
- { SYNONYM.TIMEOUT, KEY.Connect_Timeout },
- { SYNONYM.LANGUAGE, KEY.Current_Language },
- { SYNONYM.ADDR, KEY.Data_Source },
- { SYNONYM.ADDRESS, KEY.Data_Source },
- { SYNONYM.MULTIPLEACTIVERESULTSETS, KEY.MARS },
- { SYNONYM.MULTISUBNETFAILOVER, KEY.MultiSubnetFailover },
- { SYNONYM.NETWORK_ADDRESS, KEY.Data_Source },
- { SYNONYM.POOLBLOCKINGPERIOD, KEY.PoolBlockingPeriod},
- { SYNONYM.SERVER, KEY.Data_Source },
- { SYNONYM.DATABASE, KEY.Initial_Catalog },
- { SYNONYM.TRUSTED_CONNECTION, KEY.Integrated_Security },
- { SYNONYM.TRUSTSERVERCERTIFICATE, KEY.TrustServerCertificate },
- { SYNONYM.Connection_Lifetime, KEY.Load_Balance_Timeout },
- { SYNONYM.Pwd, KEY.Password },
- { SYNONYM.PERSISTSECURITYINFO, KEY.Persist_Security_Info },
- { SYNONYM.UID, KEY.User_ID },
- { SYNONYM.User, KEY.User_ID },
- { SYNONYM.WSID, KEY.Workstation_Id },
- { SYNONYM.ServerSPN, KEY.Server_SPN },
- { SYNONYM.FailoverPartnerSPN, KEY.Failover_Partner_SPN },
-#if NETFRAMEWORK
- { KEY.Connection_Reset, KEY.Connection_Reset },
- { KEY.Network_Library, KEY.Network_Library },
- { KEY.TransparentNetworkIPResolution, KEY.TransparentNetworkIPResolution },
- { SYNONYM.NET, KEY.Network_Library },
- { SYNONYM.NETWORK, KEY.Network_Library },
- { SYNONYM.TRANSPARENTNETWORKIPRESOLUTION, KEY.TransparentNetworkIPResolution },
-#endif // NETFRAMEWORK
- };
- Debug.Assert(synonyms.Count == count, $"incorrect initial ParseSynonyms size {count} v/s {synonyms.Count}");
- Interlocked.CompareExchange(ref s_sqlClientSynonyms, synonyms, null);
- }
- return synonyms;
- }
-
internal string ObtainWorkstationId()
{
// If not supplied by the user, the default value is the MachineName
@@ -869,7 +692,7 @@ internal string ObtainWorkstationId()
// since permission to open the connection has been granted
// the information is shared with the server, but not directly with the user
result = ADP.MachineName();
- ValidateValueLength(result, TdsEnums.MAXLEN_HOSTNAME, KEY.Workstation_Id);
+ ValidateValueLength(result, TdsEnums.MAXLEN_HOSTNAME, DbConnectionStringKeywords.WorkstationId);
}
return result;
}
@@ -903,7 +726,7 @@ internal static void VerifyLocalHostAndFixup(ref string host, bool enforceLocalH
{
if (enforceLocalHost)
{
- throw ADP.InvalidConnectionOptionValue(KEY.AttachDBFilename);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.AttachDbFilename);
}
}
}
@@ -928,24 +751,24 @@ private static string GetComputerNameDnsFullyQualified()
internal ApplicationIntent ConvertValueToApplicationIntent()
{
- if (!TryGetParsetableValue(KEY.ApplicationIntent, out string value))
+ if (!TryGetParsetableValue(DbConnectionStringKeywords.ApplicationIntent, out string value))
{
- return DEFAULT.ApplicationIntent;
+ return DbConnectionStringDefaults.ApplicationIntent;
}
// when wrong value is used in the connection string provided to SqlConnection.ConnectionString or c-tor,
// wrap Format and Overflow exceptions with Argument one, to be consistent with rest of the keyword types (like int and bool)
try
{
- return DbConnectionStringUtilities.ConvertToApplicationIntent(KEY.ApplicationIntent, value);
+ return DbConnectionStringUtilities.ConvertToApplicationIntent(DbConnectionStringKeywords.ApplicationIntent, value);
}
catch (FormatException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.ApplicationIntent, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.ApplicationIntent, e);
}
catch (OverflowException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.ApplicationIntent, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.ApplicationIntent, e);
}
// ArgumentException and other types are raised as is (no wrapping)
}
@@ -962,22 +785,22 @@ internal void ThrowUnsupportedIfKeywordSet(string keyword)
internal SqlAuthenticationMethod ConvertValueToAuthenticationType()
{
- if (!TryGetParsetableValue(KEY.Authentication, out string value))
+ if (!TryGetParsetableValue(DbConnectionStringKeywords.Authentication, out string value))
{
- return DEFAULT.Authentication;
+ return DbConnectionStringDefaults.Authentication;
}
try
{
- return DbConnectionStringUtilities.ConvertToAuthenticationType(KEY.Authentication, value);
+ return DbConnectionStringUtilities.ConvertToAuthenticationType(DbConnectionStringKeywords.Authentication, value);
}
catch (FormatException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.Authentication, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.Authentication, e);
}
catch (OverflowException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.Authentication, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.Authentication, e);
}
}
@@ -987,22 +810,22 @@ internal SqlAuthenticationMethod ConvertValueToAuthenticationType()
///
internal SqlConnectionColumnEncryptionSetting ConvertValueToColumnEncryptionSetting()
{
- if (!TryGetParsetableValue(KEY.ColumnEncryptionSetting, out string value))
+ if (!TryGetParsetableValue(DbConnectionStringKeywords.ColumnEncryptionSetting, out string value))
{
- return DEFAULT.ColumnEncryptionSetting;
+ return DbConnectionStringDefaults.ColumnEncryptionSetting;
}
try
{
- return DbConnectionStringUtilities.ConvertToColumnEncryptionSetting(KEY.ColumnEncryptionSetting, value);
+ return DbConnectionStringUtilities.ConvertToColumnEncryptionSetting(DbConnectionStringKeywords.ColumnEncryptionSetting, value);
}
catch (FormatException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.ColumnEncryptionSetting, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.ColumnEncryptionSetting, e);
}
catch (OverflowException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.ColumnEncryptionSetting, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.ColumnEncryptionSetting, e);
}
}
@@ -1012,22 +835,22 @@ internal SqlConnectionColumnEncryptionSetting ConvertValueToColumnEncryptionSett
///
internal SqlConnectionAttestationProtocol ConvertValueToAttestationProtocol()
{
- if (!TryGetParsetableValue(KEY.AttestationProtocol, out string value))
+ if (!TryGetParsetableValue(DbConnectionStringKeywords.AttestationProtocol, out string value))
{
- return DEFAULT.AttestationProtocol;
+ return DbConnectionStringDefaults.AttestationProtocol;
}
try
{
- return AttestationProtocolUtilities.ConvertToAttestationProtocol(KEY.AttestationProtocol, value);
+ return AttestationProtocolUtilities.ConvertToAttestationProtocol(DbConnectionStringKeywords.AttestationProtocol, value);
}
catch (FormatException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.AttestationProtocol, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.AttestationProtocol, e);
}
catch (OverflowException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.AttestationProtocol, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.AttestationProtocol, e);
}
}
@@ -1037,60 +860,60 @@ internal SqlConnectionAttestationProtocol ConvertValueToAttestationProtocol()
///
internal SqlConnectionIPAddressPreference ConvertValueToIPAddressPreference()
{
- if (!TryGetParsetableValue(KEY.IPAddressPreference, out string value))
+ if (!TryGetParsetableValue(DbConnectionStringKeywords.IpAddressPreference, out string value))
{
- return DEFAULT.IpAddressPreference;
+ return DbConnectionStringDefaults.IpAddressPreference;
}
try
{
- return IpAddressPreferenceUtilities.ConvertToIPAddressPreference(KEY.IPAddressPreference, value);
+ return IpAddressPreferenceUtilities.ConvertToIPAddressPreference(DbConnectionStringKeywords.IpAddressPreference, value);
}
catch (FormatException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.IPAddressPreference, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.IpAddressPreference, e);
}
catch (OverflowException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.IPAddressPreference, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.IpAddressPreference, e);
}
}
internal PoolBlockingPeriod ConvertValueToPoolBlockingPeriod()
{
- if (!TryGetParsetableValue(KEY.PoolBlockingPeriod, out string value))
+ if (!TryGetParsetableValue(DbConnectionStringKeywords.PoolBlockingPeriod, out string value))
{
- return DEFAULT.PoolBlockingPeriod;
+ return DbConnectionStringDefaults.PoolBlockingPeriod;
}
try
{
- return PoolBlockingUtilities.ConvertToPoolBlockingPeriod(KEY.PoolBlockingPeriod, value);
+ return PoolBlockingUtilities.ConvertToPoolBlockingPeriod(DbConnectionStringKeywords.PoolBlockingPeriod, value);
}
catch (Exception e) when (e is FormatException || e is OverflowException)
{
- throw ADP.InvalidConnectionOptionValue(KEY.PoolBlockingPeriod, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.PoolBlockingPeriod, e);
}
}
internal SqlConnectionEncryptOption ConvertValueToSqlConnectionEncrypt()
{
- if (!TryGetParsetableValue(KEY.Encrypt, out string value))
+ if (!TryGetParsetableValue(DbConnectionStringKeywords.Encrypt, out string value))
{
- return DEFAULT.Encrypt;
+ return DbConnectionStringDefaults.Encrypt;
}
try
{
- return AttestationProtocolUtilities.ConvertToSqlConnectionEncryptOption(KEY.Encrypt, value);
+ return AttestationProtocolUtilities.ConvertToSqlConnectionEncryptOption(DbConnectionStringKeywords.Encrypt, value);
}
catch (FormatException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.Encrypt, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.Encrypt, e);
}
catch (OverflowException e)
{
- throw ADP.InvalidConnectionOptionValue(KEY.Encrypt, e);
+ throw ADP.InvalidConnectionOptionValue(DbConnectionStringKeywords.Encrypt, e);
}
}
@@ -1161,5 +984,21 @@ protected internal override PermissionSet CreatePermissionSet()
internal string NetworkLibrary => _networkLibrary;
#endif // NETFRAMEWORK
+
+ #region Private Methods
+
+ private static void AddKeywordToMap(string keyword, params string[] synonyms)
+ {
+ // Add mapping of keyword to keyword
+ s_keywordMap.Add(keyword, keyword);
+
+ // Add mapping of synonyms to keyword
+ foreach (string synonym in synonyms)
+ {
+ s_keywordMap.Add(synonym, keyword);
+ }
+ }
+
+ #endregion
}
}
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs
index 6c3e5989f4..177075e48c 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs
@@ -87,7 +87,7 @@ private enum Keywords
private ApplicationIntent _applicationIntent = DbConnectionStringDefaults.ApplicationIntent;
private string _applicationName = DbConnectionStringDefaults.ApplicationName;
- private string _attachDBFilename = DbConnectionStringDefaults.AttachDBFilename;
+ private string _attachDBFilename = DbConnectionStringDefaults.AttachDbFilename;
private string _currentLanguage = DbConnectionStringDefaults.CurrentLanguage;
private string _dataSource = DbConnectionStringDefaults.DataSource;
private string _failoverPartner = DbConnectionStringDefaults.FailoverPartner;
@@ -95,8 +95,8 @@ private enum Keywords
private string _password = DbConnectionStringDefaults.Password;
private string _transactionBinding = DbConnectionStringDefaults.TransactionBinding;
private string _typeSystemVersion = DbConnectionStringDefaults.TypeSystemVersion;
- private string _userID = DbConnectionStringDefaults.UserID;
- private string _workstationID = DbConnectionStringDefaults.WorkstationID;
+ private string _userID = DbConnectionStringDefaults.UserId;
+ private string _workstationID = DbConnectionStringDefaults.WorkstationId;
private int _commandTimeout = DbConnectionStringDefaults.CommandTimeout;
private int _connectTimeout = DbConnectionStringDefaults.ConnectTimeout;
@@ -124,13 +124,13 @@ private enum Keywords
private SqlConnectionColumnEncryptionSetting _columnEncryptionSetting = DbConnectionStringDefaults.ColumnEncryptionSetting;
private string _enclaveAttestationUrl = DbConnectionStringDefaults.EnclaveAttestationUrl;
private SqlConnectionAttestationProtocol _attestationProtocol = DbConnectionStringDefaults.AttestationProtocol;
- private SqlConnectionIPAddressPreference _ipAddressPreference = DbConnectionStringDefaults.IPAddressPreference;
- private string _serverSPN = DbConnectionStringDefaults.ServerSPN;
- private string _failoverPartnerSPN = DbConnectionStringDefaults.FailoverPartnerSPN;
+ private SqlConnectionIPAddressPreference _ipAddressPreference = DbConnectionStringDefaults.IpAddressPreference;
+ private string _serverSPN = DbConnectionStringDefaults.ServerSpn;
+ private string _failoverPartnerSPN = DbConnectionStringDefaults.FailoverPartnerSpn;
#if NETFRAMEWORK
private bool _connectionReset = DbConnectionStringDefaults.ConnectionReset;
- private bool _transparentNetworkIPResolution = DbConnectionStringDefaults.TransparentNetworkIPResolution;
+ private bool _transparentNetworkIPResolution = DbConnectionStringDefaults.TransparentNetworkIpResolution;
private string _networkLibrary = DbConnectionStringDefaults.NetworkLibrary;
#endif
#endregion //Fields
@@ -141,7 +141,7 @@ private static string[] CreateValidKeywords()
string[] validKeywords = new string[KeywordsCount];
validKeywords[(int)Keywords.ApplicationIntent] = DbConnectionStringKeywords.ApplicationIntent;
validKeywords[(int)Keywords.ApplicationName] = DbConnectionStringKeywords.ApplicationName;
- validKeywords[(int)Keywords.AttachDBFilename] = DbConnectionStringKeywords.AttachDBFilename;
+ validKeywords[(int)Keywords.AttachDBFilename] = DbConnectionStringKeywords.AttachDbFilename;
validKeywords[(int)Keywords.PoolBlockingPeriod] = DbConnectionStringKeywords.PoolBlockingPeriod;
validKeywords[(int)Keywords.CommandTimeout] = DbConnectionStringKeywords.CommandTimeout;
validKeywords[(int)Keywords.ConnectTimeout] = DbConnectionStringKeywords.ConnectTimeout;
@@ -167,34 +167,38 @@ private static string[] CreateValidKeywords()
validKeywords[(int)Keywords.TransactionBinding] = DbConnectionStringKeywords.TransactionBinding;
validKeywords[(int)Keywords.TrustServerCertificate] = DbConnectionStringKeywords.TrustServerCertificate;
validKeywords[(int)Keywords.TypeSystemVersion] = DbConnectionStringKeywords.TypeSystemVersion;
- validKeywords[(int)Keywords.UserID] = DbConnectionStringKeywords.UserID;
+ validKeywords[(int)Keywords.UserID] = DbConnectionStringKeywords.UserId;
validKeywords[(int)Keywords.UserInstance] = DbConnectionStringKeywords.UserInstance;
- validKeywords[(int)Keywords.WorkstationID] = DbConnectionStringKeywords.WorkstationID;
+ validKeywords[(int)Keywords.WorkstationID] = DbConnectionStringKeywords.WorkstationId;
validKeywords[(int)Keywords.ConnectRetryCount] = DbConnectionStringKeywords.ConnectRetryCount;
validKeywords[(int)Keywords.ConnectRetryInterval] = DbConnectionStringKeywords.ConnectRetryInterval;
validKeywords[(int)Keywords.Authentication] = DbConnectionStringKeywords.Authentication;
validKeywords[(int)Keywords.ColumnEncryptionSetting] = DbConnectionStringKeywords.ColumnEncryptionSetting;
validKeywords[(int)Keywords.EnclaveAttestationUrl] = DbConnectionStringKeywords.EnclaveAttestationUrl;
validKeywords[(int)Keywords.AttestationProtocol] = DbConnectionStringKeywords.AttestationProtocol;
- validKeywords[(int)Keywords.IPAddressPreference] = DbConnectionStringKeywords.IPAddressPreference;
- validKeywords[(int)Keywords.ServerSPN] = DbConnectionStringKeywords.ServerSPN;
- validKeywords[(int)Keywords.FailoverPartnerSPN] = DbConnectionStringKeywords.FailoverPartnerSPN;
+ validKeywords[(int)Keywords.IPAddressPreference] = DbConnectionStringKeywords.IpAddressPreference;
+ validKeywords[(int)Keywords.ServerSPN] = DbConnectionStringKeywords.ServerSpn;
+ validKeywords[(int)Keywords.FailoverPartnerSPN] = DbConnectionStringKeywords.FailoverPartnerSpn;
validKeywords[(int)Keywords.ContextConnection] = DbConnectionStringKeywords.ContextConnection;
#if NETFRAMEWORK
validKeywords[(int)Keywords.ConnectionReset] = DbConnectionStringKeywords.ConnectionReset;
validKeywords[(int)Keywords.NetworkLibrary] = DbConnectionStringKeywords.NetworkLibrary;
- validKeywords[(int)Keywords.TransparentNetworkIPResolution] = DbConnectionStringKeywords.TransparentNetworkIPResolution;
+ validKeywords[(int)Keywords.TransparentNetworkIPResolution] = DbConnectionStringKeywords.TransparentNetworkIpResolution;
#endif
return validKeywords;
}
private static Dictionary CreateKeywordsDictionary()
{
- Dictionary pairs = new(KeywordsCount + SqlConnectionString.SynonymCount, StringComparer.OrdinalIgnoreCase)
+ // @TODO: Ok, I think we should consider centralizing all these keywords into a single
+ // place. We have DbConnectionString*, Keywords, etc.
+ // Can we consider something DbConnectionOptions as backing store for the values
+ // and both SqlConnectionStringBuilder and SqlConnectionString use it to store?
+ Dictionary pairs = new(StringComparer.OrdinalIgnoreCase)
{
{ DbConnectionStringKeywords.ApplicationIntent, Keywords.ApplicationIntent },
{ DbConnectionStringKeywords.ApplicationName, Keywords.ApplicationName },
- { DbConnectionStringKeywords.AttachDBFilename, Keywords.AttachDBFilename },
+ { DbConnectionStringKeywords.AttachDbFilename, Keywords.AttachDBFilename },
{ DbConnectionStringKeywords.PoolBlockingPeriod, Keywords.PoolBlockingPeriod },
{ DbConnectionStringKeywords.CommandTimeout, Keywords.CommandTimeout },
{ DbConnectionStringKeywords.ConnectTimeout, Keywords.ConnectTimeout },
@@ -220,59 +224,58 @@ private static Dictionary CreateKeywordsDictionary()
{ DbConnectionStringKeywords.TransactionBinding, Keywords.TransactionBinding },
{ DbConnectionStringKeywords.TrustServerCertificate, Keywords.TrustServerCertificate },
{ DbConnectionStringKeywords.TypeSystemVersion, Keywords.TypeSystemVersion },
- { DbConnectionStringKeywords.UserID, Keywords.UserID },
+ { DbConnectionStringKeywords.UserId, Keywords.UserID },
{ DbConnectionStringKeywords.UserInstance, Keywords.UserInstance },
- { DbConnectionStringKeywords.WorkstationID, Keywords.WorkstationID },
+ { DbConnectionStringKeywords.WorkstationId, Keywords.WorkstationID },
{ DbConnectionStringKeywords.ConnectRetryCount, Keywords.ConnectRetryCount },
{ DbConnectionStringKeywords.ConnectRetryInterval, Keywords.ConnectRetryInterval },
{ DbConnectionStringKeywords.Authentication, Keywords.Authentication },
{ DbConnectionStringKeywords.ColumnEncryptionSetting, Keywords.ColumnEncryptionSetting },
{ DbConnectionStringKeywords.EnclaveAttestationUrl, Keywords.EnclaveAttestationUrl },
{ DbConnectionStringKeywords.AttestationProtocol, Keywords.AttestationProtocol },
- { DbConnectionStringKeywords.IPAddressPreference, Keywords.IPAddressPreference },
- { DbConnectionStringKeywords.ServerSPN, Keywords.ServerSPN },
- { DbConnectionStringKeywords.FailoverPartnerSPN, Keywords.FailoverPartnerSPN },
+ { DbConnectionStringKeywords.IpAddressPreference, Keywords.IPAddressPreference },
+ { DbConnectionStringKeywords.ServerSpn, Keywords.ServerSPN },
+ { DbConnectionStringKeywords.FailoverPartnerSpn, Keywords.FailoverPartnerSPN },
{ DbConnectionStringKeywords.ContextConnection, Keywords.ContextConnection },
#if NETFRAMEWORK
{ DbConnectionStringKeywords.ConnectionReset, Keywords.ConnectionReset },
- { DbConnectionStringKeywords.TransparentNetworkIPResolution, Keywords.TransparentNetworkIPResolution },
+ { DbConnectionStringKeywords.TransparentNetworkIpResolution, Keywords.TransparentNetworkIPResolution },
{ DbConnectionStringKeywords.NetworkLibrary, Keywords.NetworkLibrary },
- { DbConnectionStringSynonyms.NET, Keywords.NetworkLibrary },
- { DbConnectionStringSynonyms.NETWORK, Keywords.NetworkLibrary },
- { DbConnectionStringSynonyms.TRANSPARENTNETWORKIPRESOLUTION, Keywords.TransparentNetworkIPResolution },
+ { DbConnectionStringSynonyms.Net, Keywords.NetworkLibrary },
+ { DbConnectionStringSynonyms.Network, Keywords.NetworkLibrary },
+ { DbConnectionStringSynonyms.TransparentNetworkIpResolution, Keywords.TransparentNetworkIPResolution },
#endif
- { DbConnectionStringSynonyms.IPADDRESSPREFERENCE, Keywords.IPAddressPreference },
- { DbConnectionStringSynonyms.APP, Keywords.ApplicationName },
- { DbConnectionStringSynonyms.APPLICATIONINTENT, Keywords.ApplicationIntent },
- { DbConnectionStringSynonyms.EXTENDEDPROPERTIES, Keywords.AttachDBFilename },
- { DbConnectionStringSynonyms.HOSTNAMEINCERTIFICATE, Keywords.HostNameInCertificate },
- { DbConnectionStringSynonyms.SERVERCERTIFICATE, Keywords.ServerCertificate },
- { DbConnectionStringSynonyms.INITIALFILENAME, Keywords.AttachDBFilename },
- { DbConnectionStringSynonyms.CONNECTIONTIMEOUT, Keywords.ConnectTimeout },
- { DbConnectionStringSynonyms.CONNECTRETRYCOUNT, Keywords.ConnectRetryCount },
- { DbConnectionStringSynonyms.CONNECTRETRYINTERVAL, Keywords.ConnectRetryInterval },
- { DbConnectionStringSynonyms.TIMEOUT, Keywords.ConnectTimeout },
- { DbConnectionStringSynonyms.LANGUAGE, Keywords.CurrentLanguage },
- { DbConnectionStringSynonyms.ADDR, Keywords.DataSource },
- { DbConnectionStringSynonyms.ADDRESS, Keywords.DataSource },
- { DbConnectionStringSynonyms.MULTIPLEACTIVERESULTSETS, Keywords.MultipleActiveResultSets },
- { DbConnectionStringSynonyms.MULTISUBNETFAILOVER, Keywords.MultiSubnetFailover },
- { DbConnectionStringSynonyms.NETWORKADDRESS, Keywords.DataSource },
- { DbConnectionStringSynonyms.POOLBLOCKINGPERIOD, Keywords.PoolBlockingPeriod },
- { DbConnectionStringSynonyms.SERVER, Keywords.DataSource },
- { DbConnectionStringSynonyms.DATABASE, Keywords.InitialCatalog },
- { DbConnectionStringSynonyms.TRUSTEDCONNECTION, Keywords.IntegratedSecurity },
- { DbConnectionStringSynonyms.TRUSTSERVERCERTIFICATE, Keywords.TrustServerCertificate },
+ { DbConnectionStringSynonyms.IpAddressPreference, Keywords.IPAddressPreference },
+ { DbConnectionStringSynonyms.App, Keywords.ApplicationName },
+ { DbConnectionStringSynonyms.ApplicationIntent, Keywords.ApplicationIntent },
+ { DbConnectionStringSynonyms.ExtendedProperties, Keywords.AttachDBFilename },
+ { DbConnectionStringSynonyms.HostNameInCertificate, Keywords.HostNameInCertificate },
+ { DbConnectionStringSynonyms.ServerCertificate, Keywords.ServerCertificate },
+ { DbConnectionStringSynonyms.InitialFileName, Keywords.AttachDBFilename },
+ { DbConnectionStringSynonyms.ConnectionTimeout, Keywords.ConnectTimeout },
+ { DbConnectionStringSynonyms.ConnectRetryCount, Keywords.ConnectRetryCount },
+ { DbConnectionStringSynonyms.ConnectRetryInterval, Keywords.ConnectRetryInterval },
+ { DbConnectionStringSynonyms.Timeout, Keywords.ConnectTimeout },
+ { DbConnectionStringSynonyms.Language, Keywords.CurrentLanguage },
+ { DbConnectionStringSynonyms.Addr, Keywords.DataSource },
+ { DbConnectionStringSynonyms.Address, Keywords.DataSource },
+ { DbConnectionStringSynonyms.MultipleActiveResultSets, Keywords.MultipleActiveResultSets },
+ { DbConnectionStringSynonyms.MultiSubnetFailover, Keywords.MultiSubnetFailover },
+ { DbConnectionStringSynonyms.NetworkAddress, Keywords.DataSource },
+ { DbConnectionStringSynonyms.PoolBlockingPeriod, Keywords.PoolBlockingPeriod },
+ { DbConnectionStringSynonyms.Server, Keywords.DataSource },
+ { DbConnectionStringSynonyms.Database, Keywords.InitialCatalog },
+ { DbConnectionStringSynonyms.TrustedConnection, Keywords.IntegratedSecurity },
+ { DbConnectionStringSynonyms.TrustServerCertificate, Keywords.TrustServerCertificate },
{ DbConnectionStringSynonyms.ConnectionLifetime, Keywords.LoadBalanceTimeout },
{ DbConnectionStringSynonyms.Pwd, Keywords.Password },
- { DbConnectionStringSynonyms.PERSISTSECURITYINFO, Keywords.PersistSecurityInfo },
- { DbConnectionStringSynonyms.UID, Keywords.UserID },
+ { DbConnectionStringSynonyms.PersistSecurityInfo, Keywords.PersistSecurityInfo },
+ { DbConnectionStringSynonyms.Uid, Keywords.UserID },
{ DbConnectionStringSynonyms.User, Keywords.UserID },
- { DbConnectionStringSynonyms.WSID, Keywords.WorkstationID },
- { DbConnectionStringSynonyms.ServerSPN, Keywords.ServerSPN },
- { DbConnectionStringSynonyms.FailoverPartnerSPN, Keywords.FailoverPartnerSPN },
+ { DbConnectionStringSynonyms.WsId, Keywords.WorkstationID },
+ { DbConnectionStringSynonyms.ServerSpn, Keywords.ServerSPN },
+ { DbConnectionStringSynonyms.FailoverPartnerSpn, Keywords.FailoverPartnerSPN },
};
- Debug.Assert((KeywordsCount + SqlConnectionString.SynonymCount) == pairs.Count, "initial expected size is incorrect");
return pairs;
}
@@ -429,7 +432,7 @@ private void Reset(Keywords index)
_applicationName = DbConnectionStringDefaults.ApplicationName;
break;
case Keywords.AttachDBFilename:
- _attachDBFilename = DbConnectionStringDefaults.AttachDBFilename;
+ _attachDBFilename = DbConnectionStringDefaults.AttachDbFilename;
break;
case Keywords.Authentication:
_authentication = DbConnectionStringDefaults.Authentication;
@@ -516,13 +519,13 @@ private void Reset(Keywords index)
_typeSystemVersion = DbConnectionStringDefaults.TypeSystemVersion;
break;
case Keywords.UserID:
- _userID = DbConnectionStringDefaults.UserID;
+ _userID = DbConnectionStringDefaults.UserId;
break;
case Keywords.UserInstance:
_userInstance = DbConnectionStringDefaults.UserInstance;
break;
case Keywords.WorkstationID:
- _workstationID = DbConnectionStringDefaults.WorkstationID;
+ _workstationID = DbConnectionStringDefaults.WorkstationId;
break;
case Keywords.ColumnEncryptionSetting:
_columnEncryptionSetting = DbConnectionStringDefaults.ColumnEncryptionSetting;
@@ -534,13 +537,13 @@ private void Reset(Keywords index)
_attestationProtocol = DbConnectionStringDefaults.AttestationProtocol;
break;
case Keywords.IPAddressPreference:
- _ipAddressPreference = DbConnectionStringDefaults.IPAddressPreference;
+ _ipAddressPreference = DbConnectionStringDefaults.IpAddressPreference;
break;
case Keywords.ServerSPN:
- _serverSPN = DbConnectionStringDefaults.ServerSPN;
+ _serverSPN = DbConnectionStringDefaults.ServerSpn;
break;
case Keywords.FailoverPartnerSPN:
- _failoverPartnerSPN = DbConnectionStringDefaults.FailoverPartnerSPN;
+ _failoverPartnerSPN = DbConnectionStringDefaults.FailoverPartnerSpn;
break;
case Keywords.ContextConnection:
break;
@@ -549,7 +552,7 @@ private void Reset(Keywords index)
_connectionReset = DbConnectionStringDefaults.ConnectionReset;
break;
case Keywords.TransparentNetworkIPResolution:
- _transparentNetworkIPResolution = DbConnectionStringDefaults.TransparentNetworkIPResolution;
+ _transparentNetworkIPResolution = DbConnectionStringDefaults.TransparentNetworkIpResolution;
break;
case Keywords.NetworkLibrary:
_networkLibrary = DbConnectionStringDefaults.NetworkLibrary;
@@ -599,7 +602,7 @@ private void SetSqlConnectionEncryptionValue(SqlConnectionEncryptOption value)
private void SetIPAddressPreferenceValue(SqlConnectionIPAddressPreference value)
{
Debug.Assert(IpAddressPreferenceUtilities.IsValidIPAddressPreference(value), "Invalid value for SqlConnectionIPAddressPreference");
- base[DbConnectionStringKeywords.IPAddressPreference] = IpAddressPreferenceUtilities.IPAddressPreferenceToString(value);
+ base[DbConnectionStringKeywords.IpAddressPreference] = IpAddressPreferenceUtilities.IPAddressPreferenceToString(value);
}
private void SetAuthenticationValue(SqlAuthenticationMethod value)
@@ -890,15 +893,15 @@ public override StandardValuesCollection GetStandardValues(ITypeDescriptorContex
private static readonly string[] s_notSupportedKeywords = {
DbConnectionStringKeywords.ConnectionReset,
DbConnectionStringKeywords.TransactionBinding,
- DbConnectionStringKeywords.TransparentNetworkIPResolution,
- DbConnectionStringSynonyms.TRANSPARENTNETWORKIPRESOLUTION,
+ DbConnectionStringKeywords.TransparentNetworkIpResolution,
+ DbConnectionStringSynonyms.TransparentNetworkIpResolution,
};
private static readonly string[] s_notSupportedNetworkLibraryKeywords = {
DbConnectionStringKeywords.NetworkLibrary,
- DbConnectionStringSynonyms.NET,
- DbConnectionStringSynonyms.NETWORK,
+ DbConnectionStringSynonyms.Net,
+ DbConnectionStringSynonyms.Network,
};
#endif
#endregion //Private Methods
@@ -1118,7 +1121,7 @@ public string ApplicationName
}
///
- [DisplayName(DbConnectionStringKeywords.AttachDBFilename)]
+ [DisplayName(DbConnectionStringKeywords.AttachDbFilename)]
[ResCategory(StringsHelper.ResourceNames.DataCategory_Source)]
[ResDescription(StringsHelper.ResourceNames.DbConnectionString_AttachDBFilename)]
[Editor("System.Windows.Forms.Design.FileNameEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.Drawing.Design.UITypeEditor, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
@@ -1128,7 +1131,7 @@ public string AttachDBFilename
get => _attachDBFilename;
set
{
- SetValue(DbConnectionStringKeywords.AttachDBFilename, value);
+ SetValue(DbConnectionStringKeywords.AttachDbFilename, value);
_attachDBFilename = value;
}
}
@@ -1203,7 +1206,7 @@ public string DataSource
}
///
- [DisplayName(DbConnectionStringKeywords.ServerSPN)]
+ [DisplayName(DbConnectionStringKeywords.ServerSpn)]
[ResCategory(StringsHelper.ResourceNames.DataCategory_Source)]
[ResDescription(StringsHelper.ResourceNames.DbConnectionString_ServerSPN)]
[RefreshProperties(RefreshProperties.All)]
@@ -1212,7 +1215,7 @@ public string ServerSPN
get => _serverSPN;
set
{
- SetValue(DbConnectionStringKeywords.ServerSPN, value);
+ SetValue(DbConnectionStringKeywords.ServerSpn, value);
_serverSPN = value;
}
}
@@ -1319,7 +1322,7 @@ public SqlConnectionAttestationProtocol AttestationProtocol
}
///
- [DisplayName(DbConnectionStringKeywords.IPAddressPreference)]
+ [DisplayName(DbConnectionStringKeywords.IpAddressPreference)]
[ResCategory(StringsHelper.ResourceNames.DataCategory_Security)]
[ResDescription(StringsHelper.ResourceNames.TCE_DbConnectionString_IPAddressPreference)]
[RefreshProperties(RefreshProperties.All)]
@@ -1385,7 +1388,7 @@ public string FailoverPartner
}
///
- [DisplayName(DbConnectionStringKeywords.FailoverPartnerSPN)]
+ [DisplayName(DbConnectionStringKeywords.FailoverPartnerSpn)]
[ResCategory(StringsHelper.ResourceNames.DataCategory_Source)]
[ResDescription(StringsHelper.ResourceNames.DbConnectionString_FailoverPartnerSPN)]
[RefreshProperties(RefreshProperties.All)]
@@ -1394,7 +1397,7 @@ public string FailoverPartnerSPN
get => _failoverPartnerSPN;
set
{
- SetValue(DbConnectionStringKeywords.FailoverPartnerSPN, value);
+ SetValue(DbConnectionStringKeywords.FailoverPartnerSpn, value);
_failoverPartnerSPN = value;
}
}
@@ -1708,7 +1711,7 @@ public string TypeSystemVersion
}
///
- [DisplayName(DbConnectionStringKeywords.UserID)]
+ [DisplayName(DbConnectionStringKeywords.UserId)]
[ResCategory(StringsHelper.ResourceNames.DataCategory_Security)]
[ResDescription(StringsHelper.ResourceNames.DbConnectionString_UserID)]
[RefreshProperties(RefreshProperties.All)]
@@ -1717,7 +1720,7 @@ public string UserID
get => _userID;
set
{
- SetValue(DbConnectionStringKeywords.UserID, value);
+ SetValue(DbConnectionStringKeywords.UserId, value);
_userID = value;
}
}
@@ -1738,7 +1741,7 @@ public bool UserInstance
}
///
- [DisplayName(DbConnectionStringKeywords.WorkstationID)]
+ [DisplayName(DbConnectionStringKeywords.WorkstationId)]
[ResCategory(StringsHelper.ResourceNames.DataCategory_Context)]
[ResDescription(StringsHelper.ResourceNames.DbConnectionString_WorkstationID)]
[RefreshProperties(RefreshProperties.All)]
@@ -1747,7 +1750,7 @@ public string WorkstationID
get => _workstationID;
set
{
- SetValue(DbConnectionStringKeywords.WorkstationID, value);
+ SetValue(DbConnectionStringKeywords.WorkstationId, value);
_workstationID = value;
}
}
@@ -1844,7 +1847,7 @@ public bool ConnectionReset
}
///
- [DisplayName(DbConnectionStringKeywords.TransparentNetworkIPResolution)]
+ [DisplayName(DbConnectionStringKeywords.TransparentNetworkIpResolution)]
[ResCategory(StringsHelper.ResourceNames.DataCategory_Source)]
[ResDescription(StringsHelper.ResourceNames.DbConnectionString_TransparentNetworkIPResolution)]
[RefreshProperties(RefreshProperties.All)]
@@ -1853,7 +1856,7 @@ public bool TransparentNetworkIPResolution
get => _transparentNetworkIPResolution;
set
{
- SetValue(DbConnectionStringKeywords.TransparentNetworkIPResolution, value);
+ SetValue(DbConnectionStringKeywords.TransparentNetworkIpResolution, value);
_transparentNetworkIPResolution = value;
}
}
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParserHelperClasses.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParserHelperClasses.cs
index 873d87c92e..75eed599ce 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParserHelperClasses.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParserHelperClasses.cs
@@ -14,6 +14,7 @@
using System.Security.Authentication;
using System.Text;
using Microsoft.Data.Common;
+using Microsoft.Data.Common.ConnectionString;
namespace Microsoft.Data.SqlClient
{
@@ -100,22 +101,22 @@ internal RoutingInfo(byte protocol, ushort port, string servername)
internal sealed class SqlLogin
{
internal SqlAuthenticationMethod authentication = SqlAuthenticationMethod.NotSpecified; // Authentication type
- internal int timeout; // login timeout
- internal bool userInstance = false; // user instance
- internal string hostName = ""; // client machine name
- internal string userName = ""; // user id
- internal string password = ""; // password
- internal string applicationName = ""; // application name
- internal string serverName = ""; // server name
- internal string language = ""; // initial language
- internal string database = ""; // initial database
- internal string attachDBFilename = ""; // DB filename to be attached
- internal bool useReplication = false; // user login for replication
- internal string newPassword = ""; // new password for reset password
+ internal int timeout; // login timeout
+ internal bool userInstance = false; // user instance
+ internal string hostName = ""; // client machine name
+ internal string userName = ""; // user id
+ internal string password = ""; // password
+ internal string applicationName = ""; // application name
+ internal string serverName = ""; // server name
+ internal string language = ""; // initial language
+ internal string database = ""; // initial database
+ internal string attachDBFilename = ""; // DB filename to be attached
+ internal bool useReplication = false; // user login for replication
+ internal string newPassword = ""; // new password for reset password
internal bool useSSPI = false; // use integrated security
- internal int packetSize = SqlConnectionString.DEFAULT.Packet_Size; // packet size
- internal bool readOnlyIntent = false; // read-only intent
- internal SqlCredential credential; // user id and password in SecureString
+ internal int packetSize = DbConnectionStringDefaults.PacketSize; // packet size
+ internal bool readOnlyIntent = false; // read-only intent
+ internal SqlCredential credential; // user id and password in SecureString
internal SecureString newSecurePassword;
}