mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-02-17 02:51:45 -05:00
Add null checks for connection properties (#2137)
This commit is contained in:
@@ -1410,31 +1410,50 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
|
|||||||
connectionBuilder.IntegratedSecurity = true;
|
connectionBuilder.IntegratedSecurity = true;
|
||||||
break;
|
break;
|
||||||
case SqlLogin:
|
case SqlLogin:
|
||||||
connectionBuilder.UserID = connectionDetails.UserName;
|
// Don't erase username from connection string.
|
||||||
connectionBuilder.Password = string.IsNullOrEmpty(connectionDetails.Password)
|
if (string.IsNullOrEmpty(connectionBuilder.UserID))
|
||||||
|
{
|
||||||
|
connectionBuilder.UserID = connectionDetails.UserName;
|
||||||
|
}
|
||||||
|
// Don't erase password from connection string.
|
||||||
|
if (string.IsNullOrEmpty(connectionBuilder.Password))
|
||||||
|
{
|
||||||
|
connectionBuilder.Password = string.IsNullOrEmpty(connectionDetails.Password)
|
||||||
? string.Empty // Support empty password for accounts without password
|
? string.Empty // Support empty password for accounts without password
|
||||||
: connectionDetails.Password;
|
: connectionDetails.Password;
|
||||||
|
}
|
||||||
connectionBuilder.Authentication = SqlAuthenticationMethod.SqlPassword;
|
connectionBuilder.Authentication = SqlAuthenticationMethod.SqlPassword;
|
||||||
break;
|
break;
|
||||||
case AzureMFA:
|
case AzureMFA:
|
||||||
if (Instance.EnableSqlAuthenticationProvider)
|
if (Instance.EnableSqlAuthenticationProvider)
|
||||||
{
|
{
|
||||||
connectionBuilder.UserID = connectionDetails.UserName;
|
if (string.IsNullOrEmpty(connectionBuilder.UserID))
|
||||||
|
{
|
||||||
|
connectionBuilder.UserID = connectionDetails.UserName;
|
||||||
|
}
|
||||||
connectionDetails.AuthenticationType = ActiveDirectoryInteractive;
|
connectionDetails.AuthenticationType = ActiveDirectoryInteractive;
|
||||||
connectionBuilder.Authentication = SqlAuthenticationMethod.ActiveDirectoryInteractive;
|
connectionBuilder.Authentication = SqlAuthenticationMethod.ActiveDirectoryInteractive;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
connectionBuilder.UserID = "";
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case ActiveDirectoryInteractive:
|
case ActiveDirectoryInteractive:
|
||||||
connectionBuilder.UserID = connectionDetails.UserName;
|
// Don't erase username from connection string.
|
||||||
|
if (string.IsNullOrEmpty(connectionBuilder.UserID))
|
||||||
|
{
|
||||||
|
connectionBuilder.UserID = connectionDetails.UserName;
|
||||||
|
}
|
||||||
connectionBuilder.Authentication = SqlAuthenticationMethod.ActiveDirectoryInteractive;
|
connectionBuilder.Authentication = SqlAuthenticationMethod.ActiveDirectoryInteractive;
|
||||||
break;
|
break;
|
||||||
case ActiveDirectoryPassword:
|
case ActiveDirectoryPassword:
|
||||||
connectionBuilder.UserID = connectionDetails.UserName;
|
// Don't erase username from connection string.
|
||||||
connectionBuilder.Password = connectionDetails.Password;
|
if (string.IsNullOrEmpty(connectionBuilder.UserID))
|
||||||
|
{
|
||||||
|
connectionBuilder.UserID = connectionDetails.UserName;
|
||||||
|
}
|
||||||
|
// Don't erase password from connection string.
|
||||||
|
if (string.IsNullOrEmpty(connectionBuilder.Password))
|
||||||
|
{
|
||||||
|
connectionBuilder.Password = connectionDetails.Password;
|
||||||
|
}
|
||||||
connectionBuilder.Authentication = SqlAuthenticationMethod.ActiveDirectoryPassword;
|
connectionBuilder.Authentication = SqlAuthenticationMethod.ActiveDirectoryPassword;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user