/// <summary> /// Alternate method to login /// SqlCredential Class /// https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcredential?view=netframework-4.8 /// </summary> public SqlServerLoginResult SqlCredentialLogin(byte[] pNameBytes, byte[] pPasswordBytes) { var loginResult = new SqlServerLoginResult(); var secureOperations = new Encryption(); var userName = secureOperations.Decrypt(pNameBytes, "111"); var userPassword = secureOperations.Decrypt(pPasswordBytes, "111"); string connectionString = $"Data Source={serverName};" + $"Initial Catalog={catalogName};"; var securePassword = new SecureString(); foreach (var character in userPassword) { securePassword.AppendChar(character); } securePassword.MakeReadOnly(); var credentials = new SqlCredential(userName, securePassword); using (var cn = new SqlConnection { ConnectionString = connectionString }) { try { cn.Credential = credentials; cn.Open(); loginResult.Success = true; } catch (SqlException failedLoginException) when(failedLoginException.Number == 18456) { loginResult.Success = false; loginResult.GenericException = false; loginResult.Message = "Can not access data."; } catch (SqlException genericSqlException) { loginResult.Success = false; loginResult.GenericException = false; loginResult.Message = "Can not access data."; } catch (Exception ex) { loginResult.Success = false; loginResult.GenericException = true; loginResult.Message = ex.Message; } } return(loginResult); }
public SqlServerLoginResult Login(byte[] pNameBytes, byte[] pPasswordBytes) { var loginResult = new SqlServerLoginResult(); var secureOperations = new Encryption(); var userName = secureOperations.Decrypt(pNameBytes, "111"); var userPassword = secureOperations.Decrypt(pPasswordBytes, "111"); string ConnectionString = $"Data Source={serverName};" + $"Initial Catalog={catalogName};" + $"User Id={userName};Password={userPassword};" + "Integrated Security=False"; using (var cn = new SqlConnection { ConnectionString = ConnectionString }) { try { cn.Open(); loginResult.Success = true; } catch (SqlException failedLoginException) when(failedLoginException.Number == 18456) { loginResult.Success = false; loginResult.GenericException = false; loginResult.Message = "Can not access data."; } catch (SqlException genericSqlException) { loginResult.Success = false; loginResult.GenericException = false; loginResult.Message = "Can not access data."; } catch (Exception ex) { loginResult.Success = false; loginResult.GenericException = true; loginResult.Message = ex.Message; } } return(loginResult); }