Handle null passwords when creating SecureStrings in AdminService (#457)

This commit is contained in:
Matt Irvine
2017-09-14 11:06:15 -07:00
committed by GitHub
parent 84ea045572
commit 52913aa815
2 changed files with 47 additions and 4 deletions

View File

@@ -180,10 +180,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Admin
// check if the connection is using SQL Auth or Integrated Auth
if (string.Equals(connInfo.ConnectionDetails.AuthenticationType, "SqlLogin", StringComparison.OrdinalIgnoreCase))
{
var passwordSecureString = new System.Security.SecureString();
foreach (char c in connInfo.ConnectionDetails.Password) {
passwordSecureString.AppendChar(c);
}
var passwordSecureString = BuildSecureStringFromPassword(connInfo.ConnectionDetails.Password);
dataContainer = new CDataContainer(
CDataContainer.ServerType.SQL,
connInfo.ConnectionDetails.ServerName,
@@ -207,6 +204,16 @@ namespace Microsoft.SqlTools.ServiceLayer.Admin
return taskHelper;
}
internal static System.Security.SecureString BuildSecureStringFromPassword(string password) {
var passwordSecureString = new System.Security.SecureString();
if (password != null) {
foreach (char c in password) {
passwordSecureString.AppendChar(c);
}
}
return passwordSecureString;
}
/// <summary>
/// Create data container document
/// </summary>