public void SetSystemSettings(string globalAdminDetails, string systemSettingsData) { LogExtension.LogInfo("Initializes system settings at first time", MethodBase.GetCurrentMethod()); var systemSettingsProperties = JsonConvert.DeserializeObject <SystemSettings>(systemSettingsData); var globalAdminDetail = JsonConvert.DeserializeObject <User>(globalAdminDetails); systemSettingsProperties.SqlConfiguration.AuthenticationType = 0; GlobalAppSettings.DbSupport = systemSettingsProperties.SqlConfiguration.ServerType; var systemSettingsModel = new SystemStartUpPageModel(); SystemStartUpPageModel.SetSystemProperties(systemSettingsProperties); Connection.ConnectionString = _tokenCryptography.Decrypt(systemSettingsProperties.SqlConfiguration.ConnectionString); var systemSettings = new SystemSettings { OrganizationName = "Grout", WelcomeNoteText = "Welcome to Grout", ActivationExpirationDays = 3, DateFormat = "MM/dd/yyyy", FavIcon = "Grout_Favicon.png", LoginLogo = "Grout_Login_Logo.png", MainScreenLogo = "Grout_Main_Logo.png", ReportCount = 20, TimeZone = TimeZoneInfo.Local.Id, Language = "en-US", BaseUrl = new UriBuilder(HttpContext.Request.Url.Scheme, HttpContext.Request.Url.Host, HttpContext.Request.Url.Port).ToString().TrimEnd('/') }; //Insert System Settings systemSettingsModel.InsertSystemSettings(systemSettings, _tokenCryptography.Decrypt(systemSettingsProperties.SqlConfiguration.ConnectionString)); //Initialize System Settings GlobalAppSettings.InitializeSystemSettings(GlobalAppSettings.GetConfigFilepath() + ServerSetup.Configuration); //Add System Administrator SystemStartUpPageModel.AddSystemAdmin(globalAdminDetail.UserName.ToLower(), CultureInfo.CurrentCulture.TextInfo.ToTitleCase(globalAdminDetail.FirstName), CultureInfo.CurrentCulture.TextInfo.ToTitleCase(globalAdminDetail.LastName), globalAdminDetail.Email.ToLower(), globalAdminDetail.Password); DatabaseSchemaUpdater.UpdateLaterversionToServerVersion(DatabaseSchemaUpdater.GetLatestVersion()); GlobalAppSettings.IsLatestVersion = false; //Add Sample Reports SystemStartUpPageModel.InsertSampleReports(); }
/// <summary> /// Initialize the Settings for the Server. /// </summary> /// <param name="path">Path of the configuration file</param> public static void InitializeSystemSettings(string path) { var tokenCryptography = new TokenCryptography(); try { SystemSettings = new SystemSettingsSerializer().Deserialize(path); if (SystemSettings != null) { SystemSettings.SqlConfiguration.ConnectionString = tokenCryptography.Decrypt(SystemSettings.SqlConfiguration.ConnectionString); ConnectionString = SystemSettings.SqlConfiguration.ConnectionString; DbSupport = SystemSettings.SqlConfiguration.ServerType; if (DbSupport == DataBaseType.MSSQLCE) { DataProvider = new SqlCeRelationalDataAdapter(ConnectionString); QueryBuilder = new SqlCeQueryBuilder(); } else { QueryBuilder = new SqlQueryBuilder(); DataProvider = new SqlRelationalDataAdapter(ConnectionString); } var globalSettings = new GlobalAppSettings().GetSystemSettings().DataTable.AsEnumerable() .Select(a => new { Key = a.Field <string>(DbColumns.DB_SystemSettings.Key), Value = a.Field <string>(DbColumns.DB_SystemSettings.Value) } ).ToDictionary(a => a.Key, a => a.Value); SystemSettings.OrganizationName = globalSettings[SystemSettingKeys.OrganizationName.ToString()]; SystemSettings.LoginLogo = globalSettings[SystemSettingKeys.LoginLogo.ToString()]; SystemSettings.MainScreenLogo = globalSettings[SystemSettingKeys.MainScreenLogo.ToString()]; SystemSettings.FavIcon = globalSettings[SystemSettingKeys.FavIcon.ToString()]; SystemSettings.WelcomeNoteText = globalSettings[SystemSettingKeys.WelcomeNoteText.ToString()]; SystemSettings.Language = globalSettings[SystemSettingKeys.Language.ToString()]; SystemSettings.TimeZone = globalSettings[SystemSettingKeys.TimeZone.ToString()]; SystemSettings.DateFormat = globalSettings[SystemSettingKeys.DateFormat.ToString()]; SystemSettings.BaseUrl = globalSettings[SystemSettingKeys.BaseUrl.ToString()]; SystemSettings.ActivationExpirationDays = Convert.ToInt32(globalSettings[SystemSettingKeys.ActivationExpirationDays.ToString()]); SystemSettings.MailSettingsAddress = globalSettings[SystemSettingKeys.MailSettingsAddress.ToString()]; SystemSettings.MailSettingsHost = globalSettings[SystemSettingKeys.MailSettingsHost.ToString()]; SystemSettings.MailSettingsSenderName = globalSettings[SystemSettingKeys.MailSettingsSenderName.ToString()]; SystemSettings.MailSettingsPassword = tokenCryptography.Decrypt( globalSettings[SystemSettingKeys.MailSettingsPassword.ToString()]); SystemSettings.MailSettingsPort = Convert.ToInt32(globalSettings[SystemSettingKeys.MailSettingsPort.ToString()]); SystemSettings.MailSettingsIsSecureAuthentication = Convert.ToBoolean( globalSettings[SystemSettingKeys.MailSettingsIsSecureAuthentication.ToString()]); Serializer = new JavaScriptSerializer(); } } catch (Exception e) { LogExtension.LogError("Exception while deserializing system settings", e, MethodBase.GetCurrentMethod(), " Path - " + path + " ConnectionString - " + ConnectionString + " OrganizationName - " + SystemSettings.OrganizationName + " LoginLogo - " + SystemSettings.LoginLogo + " MainScreenLogo - " + SystemSettings.MainScreenLogo + " FavIcon - " + SystemSettings.FavIcon + " WelcomeNoteText - " + SystemSettings.WelcomeNoteText + " Language - " + SystemSettings.Language + " TimeZone - " + SystemSettings.TimeZone + " DateFormat - " + SystemSettings.DateFormat + " BaseUrl - " + SystemSettings.BaseUrl + " ActivationExpirationDays - " + SystemSettings.ActivationExpirationDays + " MailSettingsAddress - " + SystemSettings.MailSettingsAddress + " MailSettingsHost - " + SystemSettings.MailSettingsHost + " MailSettingsSenderName - " + SystemSettings.MailSettingsSenderName + " MailSettingsPassword - " + SystemSettings.MailSettingsPassword + " MailSettingsPort - " + SystemSettings.MailSettingsPort + " MailSettingsIsSecureAuthentication - " + SystemSettings.MailSettingsIsSecureAuthentication); } }
static void Main(string[] args) { var rootPath = string.Empty; var processSuccess = true; var errorLogFileName = string.Empty; var errorLogFolder = string.Empty; if (args.Length != 0) { string syncfusionServerType; if (args[0].ToLower() == "reportserver") { syncfusionServerType = "Report Server"; errorLogFileName = "ReportServer_Errorlog_" + GetAssemblyVersion() + "_" + DateTime.Now.ToString("MMddyyyyHHmmssfff") + ".txt"; } else { syncfusionServerType = "Dashboard Server"; errorLogFileName = "DashboardServer_Errorlog_" + GetAssemblyVersion() + "_" + DateTime.Now.ToString("MMddyyyyHHmmssfff") + ".txt"; } errorLogFolder = Path.Combine(Path.GetTempPath(), "Syncfusion " + syncfusionServerType); errorTextFilePath = Path.Combine(errorLogFolder, errorLogFileName); rootPath = Path.GetFullPath(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Syncfusion\\" + syncfusionServerType); SystemSettings data = null; var xmlSerializer = new XmlSerializer(typeof(SystemSettings)); if (File.Exists(rootPath + "\\Configuration\\Config.xml")) { using (var reader = new StreamReader(rootPath + "\\Configuration\\Config.xml")) { data = (SystemSettings)xmlSerializer.Deserialize(reader); reader.Close(); } } if (data != null) { switch (data.SqlConfiguration.ServerType) { case DataBaseType.MSSQL: var tokenCryptography = new TokenCryptography(); var connectionString = tokenCryptography.Decrypt(data.SqlConfiguration.ConnectionString); var builder = new SqlConnectionStringBuilder(connectionString); var isDatabaseExist = CheckDatabaseExists(connectionString, builder.InitialCatalog); if (isDatabaseExist) { var dbDropDatabaseScript = "use master; ALTER DATABASE [" + builder.InitialCatalog + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; drop database [" + builder.InitialCatalog + "];"; var deleteAction = DeleteSQLDatabase(dbDropDatabaseScript, connectionString); if (!deleteAction.Success) { processSuccess = false; if (!Directory.Exists(errorLogFolder)) { Directory.CreateDirectory(errorLogFolder); } TextWriter tw = File.CreateText(errorTextFilePath); tw.WriteLine("Syncfusion " + syncfusionServerType + " - Uninstaller Error log."); tw.WriteLine("Error in dropping the database. Please find the below exception thrown from the SQL Server."); tw.WriteLine(deleteAction.Value.ToString()); tw.Close(); } } break; } var deleteDirectory = DeleteDirectory(rootPath); if (!deleteDirectory.Success) { processSuccess = false; var errorFileExist = File.Exists(errorTextFilePath); if (!errorFileExist) { if (!Directory.Exists(errorLogFolder)) { Directory.CreateDirectory(errorLogFolder); } TextWriter tw = File.CreateText(errorTextFilePath); tw.WriteLine("Syncfusion " + syncfusionServerType + " - Uninstaller Error log."); tw.WriteLine("Error in deleting directories."); tw.WriteLine(deleteDirectory.Value.ToString()); tw.Close(); } else { TextWriter tw = new StreamWriter(errorTextFilePath); tw.WriteLine("Error in deleting directories."); tw.WriteLine(deleteDirectory.Value.ToString()); tw.Close(); } } var statusMessage = (processSuccess) ? "success" : "failure;" + errorLogFileName; Console.WriteLine(statusMessage); } } }
public ApiResponse Login(string authHeader, string ipAddress, string requestMode = null) { var authorization = authHeader; var status = true; var isValid = LoginResponse.DeactivatedUser; var responseMessage = string.Empty; if (!string.IsNullOrEmpty(authorization)) { if (!string.IsNullOrEmpty(requestMode)) { var requestModeString = Encoding.UTF8.GetString(Convert.FromBase64String(requestMode)); var requestModeDecrypt = crypto.Decrypt(requestModeString) .Split(';') .Select(part => part.Split('=')) .Where(part => part.Length == 2) .ToDictionary(sp => sp[0], sp => sp[1]); ipAddress = requestModeDecrypt["IP"]; } var encodeUsernamePwd = Encoding.UTF8.GetString(Convert.FromBase64String(authorization)); var splitUsernamePwd = encodeUsernamePwd.IndexOf(":"); var encryptusername = encodeUsernamePwd.Substring(0, splitUsernamePwd); var usernameIp = crypto.Decrypt(encryptusername); var usernameDic = usernameIp.Split(';') .Select(e => e.Split('=')) .Where(e => e.Length == 2) .ToDictionary(a => a[0], a => a[1]); var username = usernameDic["plainText"]; var encryptPassword = encodeUsernamePwd.Substring(splitUsernamePwd + 1); var passwordIp = crypto.Decrypt(encryptPassword); var passwordDic = passwordIp.Split(';') .Select(part => part.Split('=')) .Where(part => part.Length == 2) .ToDictionary(sp => sp[0], sp => sp[1]); var password = passwordDic["plainText"]; isValid = IsValidCredentials(username, password); if (ipAddress == passwordDic["IP"]) { switch (isValid) { case LoginResponse.ValidUser: userManagement.AddUserToken(userManagement.GetUserId(username), ipAddress, String.Empty); responseMessage = "Logged in successfully"; break; case LoginResponse.InvalidPassword: status = false; responseMessage = "Invalid password"; break; case LoginResponse.ThrottledUser: status = false; responseMessage = "User has been locked"; break; case LoginResponse.InvalidUserName: status = false; responseMessage = "Invalid username"; break; case LoginResponse.DeactivatedUser: status = false; responseMessage = "Invalid user"; break; case LoginResponse.DeletedUser: status = false; responseMessage = "Deleted user"; break; } } else { status = false; responseMessage = "You are not an authorized user"; } } return(new ApiResponse { ApiStatus = true, Data = new ApiData { Success = status, Message = responseMessage, StatusText = isValid.ToString() } }); }