private SqlConnection _getSecondaryConnectionByMd5(string pMd5) { if (account_table.Contains(pMd5)) { UserRemotingContext userContext = (UserRemotingContext)account_table[pMd5]; userContext.Token.dcr_timeout(); if (userContext.SecondaryConnection.State != ConnectionState.Open) { userContext.SecondaryConnection.Open(); } return(userContext.SecondaryConnection); } return(null); }
public string GetAuthentification(string pOctoLogin, string pOctoPass, string pOctoAccount, string pComputerName, string pLoginName) { Log.RemotingServiceLogger.DebugFormat("Call of get_authentification with login : {0}, pass : {1}, account : {2}", pOctoLogin, pOctoPass, pOctoAccount); Log.RemotingServiceLogger.DebugFormat(" login : {0}, pass : {1}, server : {2}", RemoteServerSettings.GetSettings().LoginName, RemoteServerSettings.GetSettings().Password, RemoteServerSettings.GetSettings().ServerName); string md5String = ""; Token token = _getTokenByAccountName(pOctoAccount); UserRemotingContext connectionManager = new UserRemotingContext(); if (_checkAccount(token, pOctoLogin, pOctoPass) == false) { // Throw exeption // FIXME Log.RemotingServiceLogger.Error("Les User/Pass octo donn�e ne sont pas valide"); throw new Exception("messageBoxUserPasswordIncorrect.Text"); } // Generate the md5 DateTime date = DateTime.Now; string ToHash = token.get_unique_string(); ToHash += "|" + date.Minute; byte[] data = new byte[ToHash.Length]; Encoder enc = Encoding.ASCII.GetEncoder(); enc.GetBytes(ToHash.ToCharArray(), 0, ToHash.Length, data, 0, true); MD5 md5 = new MD5CryptoServiceProvider(); byte[] result = md5.ComputeHash(data); md5String = BitConverter.ToString(result).Replace("-", "").ToLower(); string connectionString = "user id=" + token.Login + ";password="******";server=" + RemoteServerSettings.GetSettings().ServerName + ";initial catalog=" + token.Account; Log.RemotingServiceLogger.DebugFormat("Connection String {0}", connectionString); SqlConnection connection = new SqlConnection(connectionString); SqlConnection secondaryConnection = new SqlConnection(connectionString); connectionManager.Token = token; connectionManager.Connection = connection; connectionManager.SecondaryConnection = secondaryConnection; if (account_table.Contains(md5String) == false) { Log.RemotingServiceLogger.DebugFormat("The account Dictionary doesnt contain this md5 : {0}", md5String); account_table[md5String] = connectionManager; } // Set the connection in the connectionManager Log.RemotingServiceLogger.DebugFormat("ConnectionString: {0}", connection.ConnectionString); this.SetConnection(connection); //OpenCBS.DatabaseConnection.ConnectionManager.GetInstance().SetConnection(connection); Log.RemotingServiceUsersLogger.InfoFormat(@"[CONNECTION {3}\{4}] Users, branch name:{0} login:{1}, connected \n \t Connection string :{2}", pOctoAccount, pOctoLogin, connectionString, pComputerName, pLoginName); Log.RemotingServiceLogger.InfoFormat(@"[CONNECTION {3}\{4}] Users, branch name:{0} login:{1}, connected \n \t Connection string :{2}", pOctoAccount, pOctoLogin, connectionString, pComputerName, pLoginName); return md5String; }
public string GetAuthentification(string pOctoLogin, string pOctoPass, string pOctoAccount, string pComputerName, string pLoginName) { Log.RemotingServiceLogger.DebugFormat("Call of get_authentification with login : {0}, pass : {1}, account : {2}", pOctoLogin, pOctoPass, pOctoAccount); Log.RemotingServiceLogger.DebugFormat(" login : {0}, pass : {1}, server : {2}", RemoteServerSettings.GetSettings().LoginName, RemoteServerSettings.GetSettings().Password, RemoteServerSettings.GetSettings().ServerName); string md5String = ""; Token token = _getTokenByAccountName(pOctoAccount); UserRemotingContext connectionManager = new UserRemotingContext(); if (_checkAccount(token, pOctoLogin, pOctoPass) == false) { // Throw exeption // FIXME Log.RemotingServiceLogger.Error("Les User/Pass octo donn�e ne sont pas valide"); throw new Exception("messageBoxUserPasswordIncorrect.Text"); } // Generate the md5 DateTime date = DateTime.Now; string ToHash = token.get_unique_string(); ToHash += "|" + date.Minute; byte[] data = new byte[ToHash.Length]; Encoder enc = Encoding.ASCII.GetEncoder(); enc.GetBytes(ToHash.ToCharArray(), 0, ToHash.Length, data, 0, true); MD5 md5 = new MD5CryptoServiceProvider(); byte[] result = md5.ComputeHash(data); md5String = BitConverter.ToString(result).Replace("-", "").ToLower(); string connectionString = "user id=" + token.Login + ";password="******";server=" + RemoteServerSettings.GetSettings().ServerName + ";initial catalog=" + token.Account; Log.RemotingServiceLogger.DebugFormat("Connection String {0}", connectionString); SqlConnection connection = new SqlConnection(connectionString); SqlConnection secondaryConnection = new SqlConnection(connectionString); connectionManager.Token = token; connectionManager.Connection = connection; connectionManager.SecondaryConnection = secondaryConnection; if (account_table.Contains(md5String) == false) { Log.RemotingServiceLogger.DebugFormat("The account Dictionary doesnt contain this md5 : {0}", md5String); account_table[md5String] = connectionManager; } // Set the connection in the connectionManager Log.RemotingServiceLogger.DebugFormat("ConnectionString: {0}", connection.ConnectionString); this.SetConnection(connection); //OpenCBS.DatabaseConnection.ConnectionManager.GetInstance().SetConnection(connection); Log.RemotingServiceUsersLogger.InfoFormat(@"[CONNECTION {3}\{4}] Users, branch name:{0} login:{1}, connected \n \t Connection string :{2}", pOctoAccount, pOctoLogin, connectionString, pComputerName, pLoginName); Log.RemotingServiceLogger.InfoFormat(@"[CONNECTION {3}\{4}] Users, branch name:{0} login:{1}, connected \n \t Connection string :{2}", pOctoAccount, pOctoLogin, connectionString, pComputerName, pLoginName); return(md5String); }