private static void UpgradeModule(EventMessage message) { try { int desktopModuleId = Convert.ToInt32(message.Attributes["DesktopModuleId"]); var desktopModule = DesktopModuleController.GetDesktopModule(desktopModuleId, Null.NullInteger); string BusinessControllerClass = message.Attributes["BusinessControllerClass"]; object controller = Reflection.CreateObject(BusinessControllerClass, ""); if (controller is IUpgradeable) { //get the list of applicable versions string[] UpgradeVersions = message.Attributes["UpgradeVersionsList"].Split(','); foreach (string Version in UpgradeVersions) { //call the IUpgradeable interface for the module/version string Results = ((IUpgradeable) controller).UpgradeModule(Version); //log the upgrade results var log = new LogInfo {LogTypeKey = EventLogController.EventLogType.MODULE_UPDATED.ToString()}; log.AddProperty("Module Upgraded", BusinessControllerClass); log.AddProperty("Version", Version); if (!string.IsNullOrEmpty(Results)) { log.AddProperty("Results", Results); } LogController.Instance.AddLog(log); } } UpdateSupportedFeatures(controller, Convert.ToInt32(message.Attributes["DesktopModuleId"])); } catch (Exception exc) { Exceptions.LogException(exc); } }
public HttpResponseMessage GetLogDetails(string guid) { Guid logId; if (string.IsNullOrEmpty(guid) || !Guid.TryParse(guid, out logId)) { return Request.CreateResponse(HttpStatusCode.BadRequest); } try { var logInfo = new LogInfo {LogGUID = guid}; logInfo = EventLogController.Instance.GetSingleLog(logInfo, LoggingProvider.ReturnType.LogInfoObjects) as LogInfo; if (logInfo == null) { return Request.CreateResponse(HttpStatusCode.BadRequest); } return Request.CreateResponse(HttpStatusCode.OK, new { Title = Localization.GetSafeJSString("CriticalError.Error", Localization.SharedResourceFile), Content = GetPropertiesText(logInfo) }); } catch (Exception ex) { Logger.Error(ex); return Request.CreateResponse(HttpStatusCode.BadRequest); } }
public bool Send( string emailTemplateFilename, Dictionary <string, object> contactFormRequest, string MailFrom, string MailTo, string MailCC, string MailReply) { var mailEngine = CreateInstance("../../live/email-templates/" + emailTemplateFilename); var mailSubj = mailEngine.Subject(); var mailBody = mailEngine.Message(contactFormRequest).ToString(); // Send Mail // uses the DNN command: http://www.dnnsoftware.com/dnn-api/html/886d0ac8-45e8-6472-455a-a7adced60ada.htm var sendMailResult = Mail.SendMail(MailFrom, MailTo, MailCC, "", MailReply, MailPriority.Normal, mailSubj, MailFormat.Html, System.Text.Encoding.UTF8, mailBody, new string[0], "", "", "", "", false); // Log to DNN - just as a last resort in case something is lost, to track down why var logInfo = new DotNetNuke.Services.Log.EventLog.LogInfo { LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT.ToString() }; logInfo.AddProperty("MailFrom", MailFrom); logInfo.AddProperty("MailTo", MailTo); logInfo.AddProperty("MailCC", MailCC); logInfo.AddProperty("MailReply", MailReply); logInfo.AddProperty("MailSubject", mailSubj); logInfo.AddProperty("SSL", DotNetNuke.Entities.Host.Host.EnableSMTPSSL.ToString()); logInfo.AddProperty("Result", sendMailResult); DotNetNuke.Services.Log.EventLog.EventLogController.Instance.AddLog(logInfo); return(sendMailResult == ""); }
private static Dictionary<string, string> GetProperties(LogInfo logInfo) { var prop = new Dictionary<string, string>(); prop.AddIfNotNull("TypeKey", logInfo.LogTypeKey); prop.AddIfNotNull("ConfigID", logInfo.LogConfigID); prop.AddIfNotNull("FileID", logInfo.LogFileID); prop.AddIfNotNull("GUID", logInfo.LogGUID); prop.AddIfNotNull("PortalName", logInfo.LogPortalName); prop.AddIfNotNull("ServerName", logInfo.LogServerName); prop.AddIfNotNull("UserName", logInfo.LogUserName); prop.Add("CreateDate", logInfo.LogCreateDate.ToString(CultureInfo.InvariantCulture)); prop.Add("EventID", logInfo.LogEventID.ToString()); prop.Add("PortalID", logInfo.LogPortalID.ToString()); prop.Add("UserID", logInfo.LogUserID.ToString()); prop.AddIfNotNull("Exception.Message", logInfo.Exception.Message); prop.AddIfNotNull("Exception.Source", logInfo.Exception.Source); prop.AddIfNotNull("Exception.StackTrace", logInfo.Exception.StackTrace); prop.AddIfNotNull("Exception.InnerMessage", logInfo.Exception.InnerMessage); prop.AddIfNotNull("Exception.InnerStackTrace", logInfo.Exception.InnerStackTrace); if (logInfo.LogProperties != null) { prop.AddIfNotNull("Summary", logInfo.LogProperties.Summary); foreach (LogDetailInfo logProperty in logInfo.LogProperties) { prop.Add(logProperty.PropertyName, logProperty.PropertyValue); } } return prop; }
/// <summary> /// Logs the 404 error to a table for later checking /// </summary> /// <param name="request"></param> /// <param name="settings"></param> /// <param name="result"></param> public static void Log404(HttpRequest request, FriendlyUrlSettings settings, UrlAction result) { var controller = new LogController(); var log = new LogInfo { LogTypeKey = EventLogController.EventLogType.PAGE_NOT_FOUND_404.ToString(), LogPortalID = (result.PortalAlias != null) ? result.PortalId : -1 }; log.LogProperties.Add(new LogDetailInfo("TabId", (result.TabId > 0) ? result.TabId.ToString() : String.Empty)); log.LogProperties.Add(new LogDetailInfo("PortalAlias", (result.PortalAlias != null) ? result.PortalAlias.HTTPAlias : String.Empty)); log.LogProperties.Add(new LogDetailInfo("OriginalUrl", result.RawUrl)); if (request != null) { if (request.UrlReferrer != null) { log.LogProperties.Add(new LogDetailInfo("Referer", request.UrlReferrer.AbsoluteUri)); } log.LogProperties.Add(new LogDetailInfo("Url", request.Url.AbsoluteUri)); log.LogProperties.Add(new LogDetailInfo("UserAgent", request.UserAgent)); log.LogProperties.Add(new LogDetailInfo("HostAddress", request.UserHostAddress)); log.LogProperties.Add(new LogDetailInfo("HostName", request.UserHostName)); } controller.AddLog(log); }
public void AddLog(Exception objException, ExceptionLogType LogType) { var objLogController = new LogController(); var objLogInfo = new LogInfo(); objLogInfo.LogTypeKey = LogType.ToString(); if (LogType == ExceptionLogType.SEARCH_INDEXER_EXCEPTION) { //Add SearchException Properties var objSearchException = (SearchException) objException; objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleId", objSearchException.SearchItem.ModuleId.ToString())); objLogInfo.LogProperties.Add(new LogDetailInfo("SearchItemId", objSearchException.SearchItem.SearchItemId.ToString())); objLogInfo.LogProperties.Add(new LogDetailInfo("Title", objSearchException.SearchItem.Title)); objLogInfo.LogProperties.Add(new LogDetailInfo("SearchKey", objSearchException.SearchItem.SearchKey)); objLogInfo.LogProperties.Add(new LogDetailInfo("GUID", objSearchException.SearchItem.GUID)); } else if (LogType == ExceptionLogType.MODULE_LOAD_EXCEPTION) { //Add ModuleLoadException Properties var objModuleLoadException = (ModuleLoadException) objException; objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleId", objModuleLoadException.ModuleId.ToString())); objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleDefId", objModuleLoadException.ModuleDefId.ToString())); objLogInfo.LogProperties.Add(new LogDetailInfo("FriendlyName", objModuleLoadException.FriendlyName)); objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleControlSource", objModuleLoadException.ModuleControlSource)); } else if (LogType == ExceptionLogType.SECURITY_EXCEPTION) { //Add SecurityException Properties var objSecurityException = (SecurityException) objException; objLogInfo.LogProperties.Add(new LogDetailInfo("Querystring", objSecurityException.Querystring)); objLogInfo.LogProperties.Add(new LogDetailInfo("IP", objSecurityException.IP)); } //Add BasePortalException Properties var objBasePortalException = new BasePortalException(objException.ToString(), objException); objLogInfo.LogProperties.Add(new LogDetailInfo("AssemblyVersion", objBasePortalException.AssemblyVersion)); objLogInfo.LogProperties.Add(new LogDetailInfo("PortalID", objBasePortalException.PortalID.ToString())); objLogInfo.LogProperties.Add(new LogDetailInfo("PortalName", objBasePortalException.PortalName)); objLogInfo.LogProperties.Add(new LogDetailInfo("UserID", objBasePortalException.UserID.ToString())); objLogInfo.LogProperties.Add(new LogDetailInfo("UserName", objBasePortalException.UserName)); objLogInfo.LogProperties.Add(new LogDetailInfo("ActiveTabID", objBasePortalException.ActiveTabID.ToString())); objLogInfo.LogProperties.Add(new LogDetailInfo("ActiveTabName", objBasePortalException.ActiveTabName)); objLogInfo.LogProperties.Add(new LogDetailInfo("RawURL", objBasePortalException.RawURL)); objLogInfo.LogProperties.Add(new LogDetailInfo("AbsoluteURL", objBasePortalException.AbsoluteURL)); objLogInfo.LogProperties.Add(new LogDetailInfo("AbsoluteURLReferrer", objBasePortalException.AbsoluteURLReferrer)); objLogInfo.LogProperties.Add(new LogDetailInfo("UserAgent", objBasePortalException.UserAgent)); objLogInfo.LogProperties.Add(new LogDetailInfo("DefaultDataProvider", objBasePortalException.DefaultDataProvider)); objLogInfo.LogProperties.Add(new LogDetailInfo("ExceptionGUID", objBasePortalException.ExceptionGUID)); objLogInfo.LogProperties.Add(new LogDetailInfo("InnerException", objBasePortalException.InnerException.Message)); objLogInfo.LogProperties.Add(new LogDetailInfo("FileName", objBasePortalException.FileName)); objLogInfo.LogProperties.Add(new LogDetailInfo("FileLineNumber", objBasePortalException.FileLineNumber.ToString())); objLogInfo.LogProperties.Add(new LogDetailInfo("FileColumnNumber", objBasePortalException.FileColumnNumber.ToString())); objLogInfo.LogProperties.Add(new LogDetailInfo("Method", objBasePortalException.Method)); objLogInfo.LogProperties.Add(new LogDetailInfo("StackTrace", objBasePortalException.StackTrace)); objLogInfo.LogProperties.Add(new LogDetailInfo("Message", objBasePortalException.Message)); objLogInfo.LogProperties.Add(new LogDetailInfo("Source", objBasePortalException.Source)); objLogInfo.LogPortalID = objBasePortalException.PortalID; objLogController.AddLog(objLogInfo); }
private static void AddLogToFile(LogInfo logInfo) { try { var f = Globals.HostMapPath + "\\Logs\\LogFailures.xml.resources"; WriteLog(f, logInfo.Serialize()); } // ReSharper disable EmptyGeneralCatchClause catch (Exception exc) // ReSharper restore EmptyGeneralCatchClause { Logger.Error(exc); } }
public void Log(ServicesAction action) { EventLogController eventLog = new EventLogController(); DotNetNuke.Services.Log.EventLog.LogInfo logInfo = default(DotNetNuke.Services.Log.EventLog.LogInfo); logInfo = new LogInfo(); logInfo.LogUserName = action.Username; logInfo.LogPortalID = PortalId; logInfo.LogTypeKey = action.LogTypeKey; logInfo.LogServerName = action.LogServerName; logInfo.AddProperty("Requested By", action.AppName); //logInfo.AddProperty("PropertyName2", propertyValue2); eventLog.AddLog(logInfo); }
public static void LogToEventLog(string methodName, string message) { DotNetNuke.Services.Log.EventLog.ExceptionLogController objEventLog = new DotNetNuke.Services.Log.EventLog.ExceptionLogController(); DotNetNuke.Services.Log.EventLog.LogInfo objEventLogInfo = new DotNetNuke.Services.Log.EventLog.LogInfo(); objEventLogInfo.BypassBuffering = true; objEventLogInfo.LogTypeKey = "ADMIN_ALERT"; objEventLogInfo.LogPortalID = staticPortalSettings.PortalId; LogDetailInfo logInfo1 = new LogDetailInfo("methodName: ", methodName); LogDetailInfo logInfo2 = new LogDetailInfo("Message: ", message); objEventLogInfo.LogProperties.Add(logInfo1); objEventLogInfo.LogProperties.Add(logInfo2); objEventLog.AddLog(objEventLogInfo); //eventLog.AddLog("DNN.Authentication.SAML." + methodName + " : " + DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss:fff"), message, staticPortalSettings, -1, EventLogController.EventLogType.ADMIN_ALERT); }
public bool Send( string emailTemplateFilename, Dictionary <string, object> valuesWithMailLabels, string MailFrom, string MailTo, string MailCC, string MailReply, List <ToSic.Sxc.Adam.IFile> files) { // Log what's happening in case we run into problems var wrapLog = Log.Call("template:" + emailTemplateFilename + ", from:" + MailFrom + ", to:" + MailTo + ", cc:" + MailCC + ", reply:" + MailReply); // Check for attachments and add them to the mail var attachments = files.Select(f => new System.Net.Mail.Attachment( new FileStream(System.Web.Hosting.HostingEnvironment.MapPath("~/") + f.Url, FileMode.Open), f.FullName)).ToList(); Log.Add("Get MailEngine"); var mailEngine = CreateInstance("../../email-templates/" + emailTemplateFilename); var mailBody = mailEngine.Message(valuesWithMailLabels).ToString(); var mailSubj = mailEngine.Subject(valuesWithMailLabels); // Send Mail // uses the DNN command: http://www.dnnsoftware.com/dnn-api/html/886d0ac8-45e8-6472-455a-a7adced60ada.htm Log.Add("sending..."); var sendMailResult = Mail.SendMail(MailFrom, MailTo, MailCC, "", MailReply, MailPriority.Normal, mailSubj, MailFormat.Html, System.Text.Encoding.UTF8, mailBody, attachments, "", "", "", "", DotNetNuke.Entities.Host.Host.EnableSMTPSSL); // Log to DNN - just as a last resort in case something is lost, to track down why var logInfo = new DotNetNuke.Services.Log.EventLog.LogInfo { LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT.ToString() }; logInfo.AddProperty("MailFrom", MailFrom); logInfo.AddProperty("MailTo", MailTo); logInfo.AddProperty("MailCC", MailCC); logInfo.AddProperty("MailReply", MailReply); logInfo.AddProperty("MailSubject", mailSubj); logInfo.AddProperty("SSL", DotNetNuke.Entities.Host.Host.EnableSMTPSSL.ToString()); logInfo.AddProperty("Result", sendMailResult); DotNetNuke.Services.Log.EventLog.EventLogController.Instance.AddLog(logInfo); wrapLog("ok"); return(sendMailResult == ""); }
public override void AddLog(LogInfo logInfo) { // Add log to DNN event log base.AddLog(logInfo); // Add log to Application Insights if (string.IsNullOrEmpty(AppInsightsClient.InstrumentationKey)) return; // Repeat base class private check var logTypeConfigInfoByKey = GetLogTypeConfigInfoByKey(logInfo.LogTypeKey, (logInfo.LogPortalID != Null.NullInteger ? logInfo.LogPortalID.ToString() : "*")); if (logTypeConfigInfoByKey == null || !logTypeConfigInfoByKey.LoggingIsActive) { return; } logInfo.LogConfigID = logTypeConfigInfoByKey.ID; var message = $"{logInfo.LogTypeKey}{(string.IsNullOrEmpty(logInfo.LogUserName) ? string.Empty : $" Username: {logInfo.LogUserName}")}{(string.IsNullOrEmpty(logInfo.LogProperties.Summary) ? string.Empty : $" Summary: {logInfo.LogProperties.Summary}")}"; AppInsightsClient.TrackEvent(message, GetProperties(logInfo)); }
private string GetPropertiesText(LogInfo logInfo) { var objLogProperties = logInfo.LogProperties; var str = new StringBuilder(); int i; for (i = 0; i <= objLogProperties.Count - 1; i++) { //display the values in the Panel child controls. var ldi = (LogDetailInfo)objLogProperties[i]; if (ldi.PropertyName == "Message") { str.Append("<p><strong>" + ldi.PropertyName + "</strong>:</br><pre>" + HttpUtility.HtmlEncode(ldi.PropertyValue) + "</pre></p>"); } else { str.Append("<p><strong>" + ldi.PropertyName + "</strong>:" + HttpUtility.HtmlEncode(ldi.PropertyValue) + "</p>"); } } str.Append("<p><b>Server Name</b>: " + HttpUtility.HtmlEncode(logInfo.LogServerName) + "</p>"); return str.ToString(); }
public void AddLog(BasePortalException objBasePortalException) { var log = new LogInfo { Exception = Exceptions.Exceptions.GetExceptionInfo(objBasePortalException), }; log.Exception.AssemblyVersion = objBasePortalException.AssemblyVersion; log.Exception.PortalId = objBasePortalException.PortalID; log.Exception.UserId = objBasePortalException.UserID; log.Exception.TabId = objBasePortalException.ActiveTabID; log.Exception.RawUrl = objBasePortalException.RawURL; log.Exception.Referrer = objBasePortalException.AbsoluteURLReferrer; log.Exception.UserAgent = objBasePortalException.UserAgent; if (objBasePortalException.GetType().Name == "ModuleLoadException") { AddLog(objBasePortalException, log, ExceptionLogType.MODULE_LOAD_EXCEPTION); } else if (objBasePortalException.GetType().Name == "PageLoadException") { AddLog(objBasePortalException, log, ExceptionLogType.PAGE_LOAD_EXCEPTION); } else if (objBasePortalException.GetType().Name == "SchedulerException") { AddLog(objBasePortalException, log, ExceptionLogType.SCHEDULER_EXCEPTION); } else if (objBasePortalException.GetType().Name == "SecurityException") { AddLog(objBasePortalException, log, ExceptionLogType.SECURITY_EXCEPTION); } else if (objBasePortalException.GetType().Name == "SearchException") { AddLog(objBasePortalException, log, ExceptionLogType.SEARCH_INDEXER_EXCEPTION); } else { AddLog(objBasePortalException, log, ExceptionLogType.GENERAL_EXCEPTION); } }
public void PerformStepOne() { IDataReader dr; string sqlStatement; var objLogger = new DotNetNuke.Services.Log.EventLog.EventLogController(); LogInfo objLog; InsertLogNote("Starting Phase 1 Processing"); //Remove temporary table if needed sqlStatement = "DROP TABLE dbo.[ICG_SMI_Passwords]"; try { ExecuteNonQuery(sqlStatement); } catch (Exception) { //Table didn't exist } //Create temporary table sqlStatement = "CREATE TABLE dbo.[ICG_SMI_Passwords]( [UserId] [uniqueidentifier] NOT NULL, [Username] [nvarchar](256) NOT NULL, [OldPassword] [nvarchar](128) NOT NULL, [Password] [nvarchar](128) NULL, CONSTRAINT [PK_aspnet_Membership_Passwords] PRIMARY KEY CLUSTERED ( [UserId] ASC ) ON [PRIMARY] ) ON [PRIMARY]"; try { ExecuteNonQuery(sqlStatement); objLog = new LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 1 Created Temp Password Table"); objLog.LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } catch (Exception ex) { objLog = new LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 1 Error Creating Temp Password Table " + ex); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } InsertLogNote("Created temp password table"); //Migrate over passwords sqlStatement = "INSERT INTO dbo.ICG_SMI_Passwords (UserId, Username, OldPassword, Password) SELECT dbo.aspnet_Users.UserId, Username, Password, NULL FROM dbo.aspnet_Users INNER JOIN dbo.aspnet_Membership ON dbo.aspnet_Users.UserId = dbo.aspnet_Membership.UserId"; try { ExecuteNonQuery(sqlStatement); objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 1 Inserted User Accounts Into Temp Password Table"); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } catch (Exception ex) { objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 1 Error Inserting User Accounts Into Temp Password Table " + ex.ToString()); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } InsertLogNote("Migrated passwords to temporary table"); //Decrypt passwords int processedUsers = 0; int decryptedUsers = 0; System.Web.Security.MembershipUser objUser; var wasSuccessful = false; sqlStatement = "SELECT * FROM dbo.ICG_SMI_Passwords"; try { dr = ExecuteReader(sqlStatement); while (dr.Read()) { processedUsers++; objUser = Membership.GetUser(dr.GetString(dr.GetOrdinal("Username"))); if (objUser != null) { try { var strPassword = objUser.GetPassword(); sqlStatement = "UPDATE dbo.ICG_SMI_Passwords SET Password = '******'", "''") + "' WHERE Username = '******'"; ExecuteNonQuery(sqlStatement); decryptedUsers++; } catch (Exception) { //Unable to get this users password } } //Provide status if (processedUsers != 0 && (processedUsers % 1000) == 0) { objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 1 User Accounts Processed: " + processedUsers.ToString()); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } } dr.Close(); InsertLogNote(string.Format("Processed {0} user accounts", processedUsers.ToString())); InsertLogNote(string.Format("Decrypted {0} user password", decryptedUsers.ToString())); wasSuccessful = true; } catch (Exception) { //Oopsie } //Final eventLog entries objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 1 User Accounts Processed: " + processedUsers.ToString()); objLog.AddProperty("SecureMyInstall", "Phase 1 User Passwords Decrypted: " + decryptedUsers.ToString()); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); if (wasSuccessful) { //Generate new keys var objSecurity = new PortalSecurity(); var newValidationKey = objSecurity.CreateKey(20); var newDecryptionKey = objSecurity.CreateKey(24); objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 1 New Machine Keys Generated"); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); InsertLogNote("Phase 2 New Machine Keys Generated"); //Update web.config, change keys as well as password format try { DotNetNuke.Common.Utilities.Config.BackupConfig(); var xmlConfig = new XmlDocument(); xmlConfig = DotNetNuke.Common.Utilities.Config.Load(); var xmlMachineKey = xmlConfig.SelectSingleNode("configuration/system.web/machineKey"); XmlUtils.UpdateAttribute(xmlMachineKey, "validationKey", newValidationKey); XmlUtils.UpdateAttribute(xmlMachineKey, "decryptionKey", newDecryptionKey); var xmlMembershipProvider = xmlConfig.SelectSingleNode("configuration/system.web/membership/providers/add[@name='AspNetSqlMembershipProvider']"); XmlUtils.UpdateAttribute(xmlMembershipProvider, "passwordFormat", "Hashed"); XmlUtils.UpdateAttribute(xmlMembershipProvider, "enablePasswordRetrieval", "false"); DotNetNuke.Common.Utilities.Config.Save(xmlConfig); objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 1 Updated Web.Config With New Machine Keys and password format"); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } catch (Exception) { objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 1 Error Processing User Accounts"); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } } }
private void LogResult(string message) { var portalSecurity = new PortalSecurity(); var objEventLog = new EventLogController(); var objEventLogInfo = new LogInfo(); objEventLogInfo.LogPortalID = PortalSettings.PortalId; objEventLogInfo.LogPortalName = PortalSettings.PortalName; objEventLogInfo.LogUserID = UserId; objEventLogInfo.LogUserName = portalSecurity.InputFilter(User.Username, PortalSecurity.FilterFlag.NoScripting | PortalSecurity.FilterFlag.NoAngleBrackets | PortalSecurity.FilterFlag.NoMarkup); if (string.IsNullOrEmpty(message)) { objEventLogInfo.LogTypeKey = "PASSWORD_SENT_SUCCESS"; } else { objEventLogInfo.LogTypeKey = "PASSWORD_SENT_FAILURE"; objEventLogInfo.LogProperties.Add(new LogDetailInfo("Cause", message)); } objEventLog.AddLog(objEventLogInfo); }
/// <inheritdoc/> public virtual object GetSingleLog(LogInfo log, LoggingProvider.ReturnType returnType) { return(LoggingProvider.Instance().GetSingleLog(log, returnType)); }
public abstract object GetSingleLog(LogInfo logInfo, ReturnType returnType);
private void OnPreRequestHandlerExecute(object sender, EventArgs e) { try { //First check if we are upgrading/installing or if it is a non-page request var app = (HttpApplication) sender; HttpRequest request = app.Request; //First check if we are upgrading/installing if (request.Url.LocalPath.ToLower().EndsWith("install.aspx") || request.Url.LocalPath.ToLower().Contains("upgradewizard.aspx") || request.Url.LocalPath.ToLower().Contains("installwizard.aspx")) { return; } //exit if a request for a .net mapping that isn't a content page is made i.e. axd if (request.Url.LocalPath.ToLower().EndsWith(".aspx") == false && request.Url.LocalPath.ToLower().EndsWith(".asmx") == false && request.Url.LocalPath.ToLower().EndsWith(".ashx") == false) { return; } if (HttpContext.Current != null) { HttpContext context = HttpContext.Current; if ((context == null)) { return; } var page = context.Handler as CDefault; if ((page == null)) { return; } page.Load += OnPageLoad; } } catch (Exception ex) { var objEventLog = new EventLogController(); var objEventLogInfo = new LogInfo(); objEventLogInfo.AddProperty("Analytics.AnalyticsModule", "OnPreRequestHandlerExecute"); objEventLogInfo.AddProperty("ExceptionMessage", ex.Message); objEventLogInfo.LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString(); objEventLog.AddLog(objEventLogInfo); Logger.Error(objEventLogInfo); } }
protected virtual void RestartApplication() { var objEv = new EventLogController(); var objEventLogInfo = new LogInfo { BypassBuffering = true, LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString() }; objEventLogInfo.AddProperty("Message", GetString("UserRestart")); objEv.AddLog(objEventLogInfo); Config.Touch(); }
public static void InvalidateDictionary(string reason, PageIndexData rebuildData, int portalId) { //if supplied, store the rebuildData for when the dictionary gets rebuilt //this is a way of storing data between dictionary rebuilds if (rebuildData != null) { DataCache.SetCache("rebuildData", rebuildData); } //add log entry for cache clearance var elc = new EventLogController(); var logValue = new LogInfo { LogTypeKey = "HOST_ALERT" }; try { //817 : not clearing items correctly from dictionary CacheController.FlushPageIndexFromCache(); } catch (Exception ex) { //do nothing ; can be from trying to access cache after system restart Services.Exceptions.Exceptions.LogException(ex); } logValue.AddProperty("Url Rewriting Caching Message", "Page Index Cache Cleared. Reason: " + reason); logValue.AddProperty("Thread Id", Thread.CurrentThread.ManagedThreadId.ToString()); elc.AddLog(logValue); }
public static string UploadSkin( string rootPath, string skinRoot, string skinName, Stream objInputStream ) { ZipInputStream objZipInputStream = new ZipInputStream(objInputStream); ZipEntry objZipEntry; int intSize = 2049; byte[] arrData = new byte[intSize]; string strMessage = ""; ArrayList arrSkinFiles = new ArrayList(); //Localized Strings PortalSettings ResourcePortalSettings = Globals.GetPortalSettings(); string BEGIN_MESSAGE = Localization.GetString("BeginZip", ResourcePortalSettings); string CREATE_DIR = Localization.GetString("CreateDir", ResourcePortalSettings); string WRITE_FILE = Localization.GetString("WriteFile", ResourcePortalSettings); string FILE_ERROR = Localization.GetString("FileError", ResourcePortalSettings); string END_MESSAGE = Localization.GetString("EndZip", ResourcePortalSettings); string FILE_RESTICTED = Localization.GetString("FileRestricted", ResourcePortalSettings); strMessage += FormatMessage(BEGIN_MESSAGE, skinName, -1, false); objZipEntry = objZipInputStream.GetNextEntry(); while (objZipEntry != null) { if (!objZipEntry.IsDirectory) { // validate file extension string strExtension = objZipEntry.Name.Substring(objZipEntry.Name.LastIndexOf(".") + 1); if (Strings.InStr(1, ",ASCX,HTM,HTML,CSS,SWF,RESX," + Globals.HostSettings["FileExtensions"].ToString().ToUpper(), "," + strExtension.ToUpper(), 0) != 0) { // process embedded zip files if (objZipEntry.Name.ToLower() == SkinInfo.RootSkin.ToLower() + ".zip") { MemoryStream objMemoryStream = new MemoryStream(); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); while (intSize > 0) { objMemoryStream.Write(arrData, 0, intSize); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); } objMemoryStream.Seek(0, SeekOrigin.Begin); strMessage += UploadSkin(rootPath, SkinInfo.RootSkin, skinName, objMemoryStream); } else if (objZipEntry.Name.ToLower() == SkinInfo.RootContainer.ToLower() + ".zip") { MemoryStream objMemoryStream = new MemoryStream(); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); while (intSize > 0) { objMemoryStream.Write(arrData, 0, intSize); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); } objMemoryStream.Seek(0, SeekOrigin.Begin); strMessage += UploadSkin(rootPath, SkinInfo.RootContainer, skinName, objMemoryStream); } else { string strFileName = rootPath + skinRoot + "\\" + skinName + "\\" + objZipEntry.Name; // create the directory if it does not exist if (!Directory.Exists(Path.GetDirectoryName(strFileName))) { strMessage += FormatMessage(CREATE_DIR, Path.GetDirectoryName(strFileName), 2, false); Directory.CreateDirectory(Path.GetDirectoryName(strFileName)); } // remove the old file if (File.Exists(strFileName)) { File.SetAttributes(strFileName, FileAttributes.Normal); File.Delete(strFileName); } // create the new file FileStream objFileStream = File.Create(strFileName); // unzip the file strMessage += FormatMessage(WRITE_FILE, Path.GetFileName(strFileName), 2, false); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); while (intSize > 0) { objFileStream.Write(arrData, 0, intSize); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); } objFileStream.Close(); // save the skin file switch (Path.GetExtension(strFileName)) { case ".htm": if (strFileName.ToLower().IndexOf(Globals.glbAboutPage.ToLower()) < 0) { arrSkinFiles.Add(strFileName); } break; case ".html": if (strFileName.ToLower().IndexOf(Globals.glbAboutPage.ToLower()) < 0) { arrSkinFiles.Add(strFileName); } break; case ".ascx": if (strFileName.ToLower().IndexOf(Globals.glbAboutPage.ToLower()) < 0) { arrSkinFiles.Add(strFileName); } break; case ".css": if (strFileName.ToLower().IndexOf(Globals.glbAboutPage.ToLower()) < 0) { arrSkinFiles.Add(strFileName); } break; } } } else { strMessage += FormatMessage(FILE_ERROR, string.Format(FILE_RESTICTED, objZipEntry.Name, Strings.Replace(Globals.HostSettings["FileExtensions"].ToString(), ",", ", *.", 1, -1, 0)), 2, true); } } objZipEntry = objZipInputStream.GetNextEntry(); } strMessage += FormatMessage(END_MESSAGE, skinName + ".zip", 1, false); objZipInputStream.Close(); // process the list of skin files SkinFileProcessor NewSkin = new SkinFileProcessor(rootPath, skinRoot, skinName); strMessage += NewSkin.ProcessList(arrSkinFiles, SkinParser.Portable); // log installation event try { LogInfo objEventLogInfo = new LogInfo(); objEventLogInfo.LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString(); objEventLogInfo.LogProperties.Add(new LogDetailInfo("Install Skin:", skinName)); Array arrMessage = strMessage.Split("<br>".ToCharArray()[0]); foreach (string tempLoopVar_strRow in arrMessage) { string strRow = tempLoopVar_strRow; objEventLogInfo.LogProperties.Add(new LogDetailInfo("Info:", HtmlUtils.StripTags(strRow, true))); } EventLogController objEventLog = new EventLogController(); objEventLog.AddLog(objEventLogInfo); } catch (Exception) { // error } return strMessage; }
/// <inheritdoc/> public void AddLog(LogInfo logInfo) { if (Globals.Status == Globals.UpgradeStatus.Install) { Logger.Info(logInfo); } else { try { logInfo.LogCreateDate = DateTime.Now; logInfo.LogServerName = Globals.ServerName; if (string.IsNullOrEmpty(logInfo.LogServerName)) { logInfo.LogServerName = "NA"; } if (string.IsNullOrEmpty(logInfo.LogUserName)) { if (HttpContext.Current != null) { try { if (HttpContext.Current.Request.IsAuthenticated) { logInfo.LogUserName = UserController.Instance.GetCurrentUserInfo().Username; } } catch (HttpException exception) { Logger.Error("Unable to retrieve HttpContext.Request, ignoring LogUserName", exception); } } } // Get portal name if name isn't set if (logInfo.LogPortalID != Null.NullInteger && string.IsNullOrEmpty(logInfo.LogPortalName)) { logInfo.LogPortalName = PortalController.Instance.GetPortal(logInfo.LogPortalID).PortalName; } // Check if Log Type exists if (!this.GetLogTypeInfoDictionary().ContainsKey(logInfo.LogTypeKey)) { // Add new Log Type var logType = new LogTypeInfo() { LogTypeKey = logInfo.LogTypeKey, LogTypeFriendlyName = logInfo.LogTypeKey, LogTypeOwner = "DotNetNuke.Logging.EventLogType", LogTypeCSSClass = "GeneralAdminOperation", LogTypeDescription = string.Empty, }; this.AddLogType(logType); var logTypeConfigInfo = new LogTypeConfigInfo() { LogTypeKey = logInfo.LogTypeKey, LogTypePortalID = "*", LoggingIsActive = false, KeepMostRecent = "-1", EmailNotificationIsActive = false, NotificationThreshold = 1, NotificationThresholdTime = 1, NotificationThresholdTimeType = LogTypeConfigInfo.NotificationThresholdTimeTypes.Seconds, MailFromAddress = string.Empty, MailToAddress = string.Empty, }; this.AddLogTypeConfigInfo(logTypeConfigInfo); } if (LoggingProvider.Instance() != null) { try { LoggingProvider.Instance().AddLog(logInfo); } catch (Exception) { if (Globals.Status != Globals.UpgradeStatus.Upgrade) // this may caught exception during upgrade because old logging provider has problem in it. { throw; } } } } catch (Exception exc) { Logger.Error(exc); AddLogToFile(logInfo); } } }
public abstract void AddLog(LogInfo logInfo);
public void PerformStepTwo() { IDataReader dr; string sqlStatement; var objLogger = new EventLogController(); LogInfo objLog; InsertLogNote("Phase 2 Starting"); //Set user passwords int processedUsers = 0; int resetUsers = 0; MembershipUser objUser; var wasSuccessful = false; sqlStatement = "SELECT * FROM dbo.ICG_SMI_Passwords WHERE Password IS NOT NULL"; try { dr = ExecuteReader(sqlStatement); while (dr.Read()) { processedUsers++; objUser = Membership.GetUser(dr.GetString(dr.GetOrdinal("Username"))); if (objUser != null) { try { //Reset password, var tempPassword = objUser.ResetPassword(); //Now, set the password objUser.ChangePassword(tempPassword, dr.GetString(dr.GetOrdinal("Password"))); resetUsers++; } catch (Exception) { //One user failed, they can request forgotten password } } //Provide status if (processedUsers != 0 && (processedUsers % 1000) == 0) { objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 2 User Accounts Processed: " + processedUsers.ToString()); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } } dr.Close(); InsertLogNote(string.Format("Processed {0} user accounts", processedUsers.ToString())); InsertLogNote(string.Format("Updated {0} user passwords", resetUsers.ToString())); wasSuccessful = true; } catch (Exception) { //Skippy dee-doo-da-day } objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 2 User Accounts Processed: " + processedUsers.ToString()); objLog.AddProperty("SecureMyInstall", "Phase 2 User Passwords Updated: " + resetUsers.ToString()); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); if (wasSuccessful) { //Drop table sqlStatement = "DROP TABLE dbo.[ICG_SMI_Passwords]"; try { ExecuteNonQuery(sqlStatement); objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 2 Dropped Temp Password Table"); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } catch (Exception ex) { objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 2 Error Dropping Temp Password Table " + ex.ToString()); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } try { var xmlConfig = new XmlDocument(); xmlConfig = DotNetNuke.Common.Utilities.Config.Load(); var xmlForms = xmlConfig.SelectSingleNode("configuration/system.web/authentication/forms"); XmlUtils.UpdateAttribute(xmlForms, "name", ".DOTNETNUKE" + DateTime.Now.ToString("yyyyMMddhhss")); DotNetNuke.Common.Utilities.Config.Save(xmlConfig); objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 2 Updated Web.Config With New Forms Authentication Ticket Name"); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } catch (Exception ex) { objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 2 Error Updating Web.Config With New Forms Authentication Ticket Name " + ex.ToString()); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } } else { objLog = new DotNetNuke.Services.Log.EventLog.LogInfo(); objLog.AddProperty("SecureMyInstall", "Phase 2 Error Processing User Accounts"); objLog.LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objLogger.AddLog(objLog); } }
/// <summary> /// cmdSendPassword_Click runs when the Password Reminder button is clicked /// </summary> /// <remarks> /// </remarks> /// <history> /// [cnurse] 03/21/2006 Created /// </history> protected void cmdSendPassword_Click( Object sender, EventArgs e ) { string strMessage = Null.NullString; bool canSend = true; if( ( UseCaptcha && ctlCaptcha.IsValid ) || ( ! UseCaptcha ) ) { if( txtUsername.Text.Trim() != "" ) { PortalSecurity objSecurity = new PortalSecurity(); UserInfo objUser = UserController.GetUserByName( PortalSettings.PortalId, txtUsername.Text, false ); if( objUser != null ) { if( MembershipProviderConfig.PasswordRetrievalEnabled ) { try { objUser.Membership.Password = UserController.GetPassword( ref objUser, txtAnswer.Text ); } catch( Exception ) { canSend = false; strMessage = Localization.GetString( "PasswordRetrievalError", this.LocalResourceFile ); } } else { canSend = false; strMessage = Localization.GetString( "PasswordRetrievalDisabled", this.LocalResourceFile ); } if( canSend ) { try { Mail.SendMail( objUser, MessageType.PasswordReminder, PortalSettings ); strMessage = Localization.GetString( "PasswordSent", this.LocalResourceFile ); } catch( Exception ) { canSend = false; } } } else { strMessage = Localization.GetString( "UsernameError", this.LocalResourceFile ); canSend = false; } if( canSend ) { EventLogController objEventLog = new EventLogController(); LogInfo objEventLogInfo = new LogInfo(); objEventLogInfo.AddProperty( "IP", ipAddress ); objEventLogInfo.LogPortalID = PortalSettings.PortalId; objEventLogInfo.LogPortalName = PortalSettings.PortalName; objEventLogInfo.LogUserID = UserId; objEventLogInfo.LogUserName = objSecurity.InputFilter( txtUsername.Text, PortalSecurity.FilterFlag.NoScripting | PortalSecurity.FilterFlag.NoAngleBrackets | PortalSecurity.FilterFlag.NoMarkup ); objEventLogInfo.LogTypeKey = "PASSWORD_SENT_SUCCESS"; objEventLog.AddLog( objEventLogInfo ); UI.Skins.Skin.AddModuleMessage( this, strMessage, ModuleMessageType.GreenSuccess ); } else { EventLogController objEventLog = new EventLogController(); LogInfo objEventLogInfo = new LogInfo(); objEventLogInfo.AddProperty( "IP", ipAddress ); objEventLogInfo.LogPortalID = PortalSettings.PortalId; objEventLogInfo.LogPortalName = PortalSettings.PortalName; objEventLogInfo.LogUserID = UserId; objEventLogInfo.LogUserName = objSecurity.InputFilter( txtUsername.Text, PortalSecurity.FilterFlag.NoScripting | PortalSecurity.FilterFlag.NoAngleBrackets | PortalSecurity.FilterFlag.NoMarkup ); objEventLogInfo.LogTypeKey = "PASSWORD_SENT_FAILURE"; objEventLog.AddLog( objEventLogInfo ); UI.Skins.Skin.AddModuleMessage( this, strMessage, ModuleMessageType.RedError ); } } else { strMessage = Localization.GetString( "EnterUsername", this.LocalResourceFile ); UI.Skins.Skin.AddModuleMessage( this, strMessage, ModuleMessageType.RedError ); } } }
private void LogResult(string message) { var portalSecurity = new PortalSecurity(); var log = new LogInfo { LogPortalID = PortalSettings.PortalId, LogPortalName = PortalSettings.PortalName, LogUserID = UserId, LogUserName = portalSecurity.InputFilter(txtUsername.Text, PortalSecurity.FilterFlag.NoScripting | PortalSecurity.FilterFlag.NoAngleBrackets | PortalSecurity.FilterFlag.NoMarkup) }; if (string.IsNullOrEmpty(message)) { log.LogTypeKey = "PASSWORD_SENT_SUCCESS"; } else { log.LogTypeKey = "PASSWORD_SENT_FAILURE"; log.LogProperties.Add(new LogDetailInfo("Cause", message)); } log.AddProperty("IP", _ipAddress); LogController.Instance.AddLog(log); }
public void AuthenticationLogon() { Configuration configuration = Configuration.GetConfig(); UserController authUserController = new UserController(); string authCookies = Configuration.AUTHENTICATION_KEY + "_" + _portalSettings.PortalId; string LoggedOnUserName = HttpContext.Current.Request.ServerVariables[Configuration.LOGON_USER_VARIABLE]; // HACK : Modified to not error if object is null. //if( LoggedOnUserName.Length > 0 ) if (!String.IsNullOrEmpty(LoggedOnUserName)) { UserInfo authUser; int intUserId = 0; Entities.Users.UserInfo dnnUser = Entities.Users.UserController.GetUserByName( _portalSettings.PortalId, LoggedOnUserName, false ); if( dnnUser != null ) { intUserId = dnnUser.UserID; // Synchronize role membership if it's required in settings if( configuration.SynchronizeRole ) { authUser = authUserController.GetUser( LoggedOnUserName ); // user object might be in simple version in none active directory network if( authUser.GUID.Length != 0 ) { authUser.UserID = intUserId; UserController.AddUserRoles( _portalSettings.PortalId, authUser ); } } } else { // User not exists in DNN database, obtain user info from provider to add new authUser = authUserController.GetUser( LoggedOnUserName ); if( authUser != null ) { authUserController.AddDNNUser( authUser ); intUserId = authUser.UserID; SetStatus( _portalSettings.PortalId, AuthenticationStatus.WinLogon ); } } if( intUserId > 0 ) { FormsAuthentication.SetAuthCookie( Convert.ToString( LoggedOnUserName ), true ); //check if user has supplied custom value for expiration int PersistentCookieTimeout = 0; if (Config.GetSetting("PersistentCookieTimeout") != null) { PersistentCookieTimeout = int.Parse(Config.GetSetting("PersistentCookieTimeout")); //only use if non-zero, otherwise leave as asp.net value if (PersistentCookieTimeout != 0) { //locate and update cookie string authCookie = FormsAuthentication.FormsCookieName; foreach (string cookie in HttpContext.Current.Response.Cookies) { if (cookie.Equals(authCookie)) { HttpContext.Current.Response.Cookies[cookie].Expires = DateTime.Now.AddMinutes(PersistentCookieTimeout); } } } } SetStatus( _portalSettings.PortalId, AuthenticationStatus.WinLogon ); // Get ipAddress for eventLog string ipAddress = ""; if( HttpContext.Current.Request.UserHostAddress != null ) { ipAddress = HttpContext.Current.Request.UserHostAddress; } EventLogController eventLog = new EventLogController(); LogInfo eventLogInfo = new LogInfo(); eventLogInfo.AddProperty( "IP", ipAddress ); eventLogInfo.LogPortalID = _portalSettings.PortalId; eventLogInfo.LogPortalName = _portalSettings.PortalName; eventLogInfo.LogUserID = intUserId; eventLogInfo.LogUserName = LoggedOnUserName; eventLogInfo.AddProperty( "WindowsAuthentication", "True" ); eventLogInfo.LogTypeKey = "LOGIN_SUCCESS"; eventLog.AddLog( eventLogInfo ); } } else { // Not Windows Authentication } // params "logon=windows" does nothing, just to force page to be refreshed string strURL = Globals.NavigateURL( _portalSettings.ActiveTab.TabID, "", "logon=windows" ); HttpContext.Current.Response.Redirect( strURL, true ); }
public static AnalyticsEngineConfiguration GetConfig() { var config = new AnalyticsEngineConfiguration {AnalyticsEngines = new AnalyticsEngineCollection()}; FileStream fileReader = null; string filePath = ""; try { config = (AnalyticsEngineConfiguration) DataCache.GetCache("AnalyticsEngineConfig"); if ((config == null)) { filePath = Common.Utilities.Config.GetPathToFile(Common.Utilities.Config.ConfigFileType.SiteAnalytics); //Create a FileStream for the Config file fileReader = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); var doc = new XPathDocument(fileReader); config = new AnalyticsEngineConfiguration {AnalyticsEngines = new AnalyticsEngineCollection()}; foreach (XPathNavigator nav in doc.CreateNavigator().Select("AnalyticsEngineConfig/Engines/AnalyticsEngine")) { var analyticsEngine = new AnalyticsEngine { EngineType = nav.SelectSingleNode("EngineType").Value, ElementId = nav.SelectSingleNode("ElementId").Value, InjectTop = Convert.ToBoolean(nav.SelectSingleNode("InjectTop").Value), ScriptTemplate = nav.SelectSingleNode("ScriptTemplate").Value }; config.AnalyticsEngines.Add(analyticsEngine); } if (File.Exists(filePath)) { //Set back into Cache DataCache.SetCache("AnalyticsEngineConfig", config, new DNNCacheDependency(filePath)); } } } catch (Exception ex) { //log it var objEventLog = new EventLogController(); var objEventLogInfo = new LogInfo(); objEventLogInfo.AddProperty("Analytics.AnalyticsEngineConfiguration", "GetConfig Failed"); objEventLogInfo.AddProperty("FilePath", filePath); objEventLogInfo.AddProperty("ExceptionMessage", ex.Message); objEventLogInfo.LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString(); objEventLog.AddLog(objEventLogInfo); Logger.Error(objEventLogInfo); } finally { if (fileReader != null) { //Close the Reader fileReader.Close(); } } return config; }
private static void AddToTabDict(SharedDictionary<string, string> tabIndex, Dictionary<string, DupKeyCheck> dupCheckDict, string httpAlias, string tabPath, string rewrittenPath, int tabId, UrlEnums.TabKeyPreference keyDupAction, ref int tabPathDepth, bool checkForDupUrls, bool isDeleted) { //remove leading '/' and convert to lower for all keys string tabPathSimple = tabPath.Replace("//", "/").ToLower(); //the tabpath depth is only set if it's higher than the running highest tab path depth int thisTabPathDepth = tabPathSimple.Length - tabPathSimple.Replace("/", "").Length; if (thisTabPathDepth > tabPathDepth) { tabPathDepth = thisTabPathDepth; } if ((tabPathSimple.Length > 0 && tabPathSimple[0] == '/')) { tabPathSimple = tabPathSimple.Substring(1); } //Contruct the tab key for the dictionary. Using :: allows for separation of portal alias and tab path. string tabKey = (httpAlias + "::" + tabPathSimple).ToLower(); //construct the duplicate key check string dupKey = (httpAlias + "/" + tabPathSimple).ToLower(); if (dupKey[dupKey.Length - 1] != '/') { dupKey += "/"; } //now make sure there is NEVER a duplicate key exception by testing for existence first using (tabIndex.GetWriteLock()) { if (tabIndex.ContainsKey(tabKey)) { //it's possible for a tab to be deleted and the tab path repeated. //the dictionary must be checked to ascertain whether the existing tab //should be replaced or not. If the action is 'TabOK' it means //replace the entry regardless. If the action is 'TabRedirected' it means //replace the existing dictionary ONLY if the existing dictionary entry is a //deleted tab. bool replaceTab = (keyDupAction == UrlEnums.TabKeyPreference.TabOK); //default, replace the tab if (replaceTab == false) { //ok, the tab to be added is either a redirected or deleted tab //get the existing entry //775 : don't assume that the duplicate check dictionary has the key if (dupCheckDict.ContainsKey(dupKey)) { DupKeyCheck foundTab = dupCheckDict[dupKey]; //a redirected tab will replace a deleted tab if (foundTab.IsDeleted && keyDupAction == UrlEnums.TabKeyPreference.TabRedirected) { replaceTab = true; } if (foundTab.TabIdOriginal == "-1") { replaceTab = true; } } } if (replaceTab && !isDeleted) //don't replace if the incoming tab is deleted { //remove the previous one tabIndex.Remove(tabKey); //add the new one tabIndex.Add(tabKey, Globals.glbDefaultPage + rewrittenPath); } } else { //just add the tabkey into the dictionary tabIndex.Add(tabKey, Globals.glbDefaultPage + rewrittenPath); } } //checking for duplicates means throwing an exception when one is found, but this is just logged to the event log if (dupCheckDict.ContainsKey(dupKey)) { DupKeyCheck foundTAb = dupCheckDict[dupKey]; if ((foundTAb.IsDeleted == false && isDeleted == false) //found is not deleted, this tab is not deleted && keyDupAction == UrlEnums.TabKeyPreference.TabOK && foundTAb.TabIdOriginal != "-1") //-1 tabs are login, register, privacy etc { //check whether to log for this or not if (checkForDupUrls && foundTAb.TabIdOriginal != tabId.ToString()) //dont' show message for where same tab is being added twice) { //there is a naming conflict where this alias/tab path could be mistaken int tabIdOriginal; string tab1Name = "", tab2Name = ""; if (int.TryParse(foundTAb.TabIdOriginal, out tabIdOriginal)) { Dictionary<int, int> portalDic = PortalController.GetPortalDictionary(); int portalId = -1; if (portalDic != null && portalDic.ContainsKey(tabId)) { portalId = portalDic[tabId]; } var tc = new TabController(); TabInfo tab1 = tc.GetTab(tabIdOriginal, portalId, false); TabInfo tab2 = tc.GetTab(tabId, portalId, false); if (tab1 != null) { tab1Name = tab1.TabName + " [" + tab1.TabPath + "]"; } if (tab2 != null) { tab2Name = tab2.TabName + " [" + tab2.TabPath + "]"; } } string msg = "Page naming conflict. Url of (" + foundTAb.TabPath + ") resolves to two separate pages (" + tab1Name + " [tabid = " + foundTAb.TabIdOriginal + "], " + tab2Name + " [tabid = " + tabId.ToString() + "]). Only the second page will be shown for the url."; const string msg2 = "PLEASE NOTE : this is an information message only, this message does not affect site operations in any way."; //771 : change to admin alert instead of exception var elc = new EventLogController(); //log a host alert var logValue = new LogInfo { LogTypeKey = "HOST_ALERT" }; logValue.AddProperty("Advanced Friendly URL Provider Duplicate URL Warning", "Page Naming Conflict"); logValue.AddProperty("Duplicate Page Details", msg); logValue.AddProperty("Warning Information", msg2); logValue.AddProperty("Suggested Action", "Rename one or both of the pages to ensure a unique URL"); logValue.AddProperty("Hide this message", "To stop this message from appearing in the log, uncheck the option for 'Produce an Exception in the Site Log if two pages have the same name/path?' in the Advanced Url Rewriting settings."); logValue.AddProperty("Thread Id", Thread.CurrentThread.ManagedThreadId.ToString()); elc.AddLog(logValue); } } else { dupCheckDict.Remove(dupKey); //add this tab to the duplicate key dictionary dupCheckDict.Add(dupKey, new DupKeyCheck(dupKey, tabId.ToString(), dupKey, isDeleted)); } } else { //add this tab to the duplicate key dictionary - the dup key check dict is always maintained //regardless of whether checking is employed or not dupCheckDict.Add(dupKey, new DupKeyCheck(dupKey, tabId.ToString(), dupKey, isDeleted)); } }
public static RewriterConfiguration GetConfig() { var config = new RewriterConfiguration {Rules = new RewriterRuleCollection()}; FileStream fileReader = null; string filePath = ""; try { config = (RewriterConfiguration) DataCache.GetCache("RewriterConfig"); if ((config == null)) { filePath = Common.Utilities.Config.GetPathToFile(Common.Utilities.Config.ConfigFileType.SiteUrls); //Create a FileStream for the Config file fileReader = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); var doc = new XPathDocument(fileReader); config = new RewriterConfiguration {Rules = new RewriterRuleCollection()}; foreach (XPathNavigator nav in doc.CreateNavigator().Select("RewriterConfig/Rules/RewriterRule")) { var rule = new RewriterRule {LookFor = nav.SelectSingleNode("LookFor").Value, SendTo = nav.SelectSingleNode("SendTo").Value}; config.Rules.Add(rule); } if (File.Exists(filePath)) { //Set back into Cache DataCache.SetCache("RewriterConfig", config, new DNNCacheDependency(filePath)); } } } catch (Exception ex) { //log it var objEventLog = new EventLogController(); var objEventLogInfo = new LogInfo(); objEventLogInfo.AddProperty("UrlRewriter.RewriterConfiguration", "GetConfig Failed"); objEventLogInfo.AddProperty("FilePath", filePath); objEventLogInfo.AddProperty("ExceptionMessage", ex.Message); objEventLogInfo.LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString(); objEventLog.AddLog(objEventLogInfo); Logger.Error(objEventLogInfo); } finally { if (fileReader != null) { //Close the Reader fileReader.Close(); } } return config; }
private void OnPageLoad(object sender, EventArgs e) { try { AnalyticsEngineCollection analyticsEngines = AnalyticsEngineConfiguration.GetConfig().AnalyticsEngines; if (analyticsEngines == null || analyticsEngines.Count == 0) { return; } var page = (Page) sender; if ((page == null)) { return; } foreach (AnalyticsEngine engine in analyticsEngines) { if ((!String.IsNullOrEmpty(engine.ElementId))) { AnalyticsEngineBase objEngine = null; if ((!String.IsNullOrEmpty(engine.EngineType))) { Type engineType = Type.GetType(engine.EngineType); if (engineType == null) objEngine = new GenericAnalyticsEngine(); else objEngine = (AnalyticsEngineBase) Activator.CreateInstance(engineType); } else { objEngine = new GenericAnalyticsEngine(); } if (objEngine != null) { string script = engine.ScriptTemplate; if ((!String.IsNullOrEmpty(script))) { script = objEngine.RenderScript(script); if ((!String.IsNullOrEmpty(script))) { var element = (HtmlContainerControl) page.FindControl(engine.ElementId); if (element != null) { var scriptControl = new LiteralControl(); scriptControl.Text = script; if (engine.InjectTop) { element.Controls.AddAt(0, scriptControl); } else { element.Controls.Add(scriptControl); } } } } } } } } catch (Exception ex) { var objEventLog = new EventLogController(); var objEventLogInfo = new LogInfo(); objEventLogInfo.AddProperty("Analytics.AnalyticsModule", "OnPageLoad"); objEventLogInfo.AddProperty("ExceptionMessage", ex.Message); objEventLogInfo.LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString(); objEventLog.AddLog(objEventLogInfo); Logger.Error(ex); } }
///----------------------------------------------------------------------------- ///<summary> /// UpgradeApplication - This overload is used for general application upgrade operations. ///</summary> ///<remarks> /// Since it is not version specific and is invoked whenever the application is /// restarted, the operations must be re-executable. ///</remarks> ///<history> /// [cnurse] 11/6/2004 documented /// [cnurse] 02/27/2007 made public so it can be called from Wizard ///</history> ///----------------------------------------------------------------------------- public static void UpgradeApplication() { try { //Remove UpdatePanel from Login Control - not neccessary in popup. var loginControl = ModuleControlController.GetModuleControlByControlKey("Login", -1); loginControl.SupportsPartialRendering = false; ModuleControlController.SaveModuleControl(loginControl, true); //Upgrade to .NET 3.5/4.0 TryUpgradeNETFramework(); //Update the version of the client resources - so the cache is cleared DataCache.ClearHostCache(false); HostController.Instance.IncrementCrmVersion(true); } catch (Exception ex) { Logger.Error(ex); var log = new LogInfo { LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString(), BypassBuffering = true }; log.AddProperty("Upgraded DotNetNuke", "General"); log.AddProperty("Warnings", "Error: " + ex.Message + Environment.NewLine); LogController.Instance.AddLog(log); try { Exceptions.Exceptions.LogException(ex); } catch (Exception exc) { Logger.Error(exc); } } //Remove any .txt and .config files that may exist in the Install folder foreach (string file in Directory.GetFiles(Globals.InstallMapPath + "Cleanup\\", "??.??.??.txt")) { FileSystemUtils.DeleteFile(file); } foreach (string file in Directory.GetFiles(Globals.InstallMapPath + "Config\\", "??.??.??.config")) { FileSystemUtils.DeleteFile(file); } }
public static string UploadLegacySkin(string rootPath, string skinRoot, string skinName, Stream inputStream) { var objZipInputStream = new ZipInputStream(inputStream); ZipEntry objZipEntry; string strExtension; string strFileName; FileStream objFileStream; int intSize = 2048; var arrData = new byte[2048]; string strMessage = ""; var arrSkinFiles = new ArrayList(); //Localized Strings PortalSettings ResourcePortalSettings = Globals.GetPortalSettings(); string BEGIN_MESSAGE = Localization.GetString("BeginZip", ResourcePortalSettings); string CREATE_DIR = Localization.GetString("CreateDir", ResourcePortalSettings); string WRITE_FILE = Localization.GetString("WriteFile", ResourcePortalSettings); string FILE_ERROR = Localization.GetString("FileError", ResourcePortalSettings); string END_MESSAGE = Localization.GetString("EndZip", ResourcePortalSettings); string FILE_RESTICTED = Localization.GetString("FileRestricted", ResourcePortalSettings); strMessage += FormatMessage(BEGIN_MESSAGE, skinName, -1, false); objZipEntry = objZipInputStream.GetNextEntry(); while (objZipEntry != null) { if (!objZipEntry.IsDirectory) { //validate file extension strExtension = objZipEntry.Name.Substring(objZipEntry.Name.LastIndexOf(".") + 1); var extraExtensions = new List<string> {".ASCX", ".HTM", ".HTML", ".CSS", ".SWF", ".RESX", ".XAML", ".JS"}; if(Host.AllowedExtensionWhitelist.IsAllowedExtension(strExtension, extraExtensions)) { //process embedded zip files if (objZipEntry.Name.ToLower() == RootSkin.ToLower() + ".zip") { var objMemoryStream = new MemoryStream(); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); while (intSize > 0) { objMemoryStream.Write(arrData, 0, intSize); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); } objMemoryStream.Seek(0, SeekOrigin.Begin); strMessage += UploadLegacySkin(rootPath, RootSkin, skinName, objMemoryStream); } else if (objZipEntry.Name.ToLower() == RootContainer.ToLower() + ".zip") { var objMemoryStream = new MemoryStream(); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); while (intSize > 0) { objMemoryStream.Write(arrData, 0, intSize); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); } objMemoryStream.Seek(0, SeekOrigin.Begin); strMessage += UploadLegacySkin(rootPath, RootContainer, skinName, objMemoryStream); } else { strFileName = rootPath + skinRoot + "\\" + skinName + "\\" + objZipEntry.Name; //create the directory if it does not exist if (!Directory.Exists(Path.GetDirectoryName(strFileName))) { strMessage += FormatMessage(CREATE_DIR, Path.GetDirectoryName(strFileName), 2, false); Directory.CreateDirectory(Path.GetDirectoryName(strFileName)); } //remove the old file if (File.Exists(strFileName)) { File.SetAttributes(strFileName, FileAttributes.Normal); File.Delete(strFileName); } //create the new file objFileStream = File.Create(strFileName); //unzip the file strMessage += FormatMessage(WRITE_FILE, Path.GetFileName(strFileName), 2, false); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); while (intSize > 0) { objFileStream.Write(arrData, 0, intSize); intSize = objZipInputStream.Read(arrData, 0, arrData.Length); } objFileStream.Close(); //save the skin file switch (Path.GetExtension(strFileName)) { case ".htm": case ".html": case ".ascx": case ".css": if (strFileName.ToLower().IndexOf(Globals.glbAboutPage.ToLower()) < 0) { arrSkinFiles.Add(strFileName); } break; } break; } } else { strMessage += string.Format(FILE_RESTICTED, objZipEntry.Name, Host.AllowedExtensionWhitelist.ToStorageString(), ",", ", *.").Replace("2", "true"); } } objZipEntry = objZipInputStream.GetNextEntry(); } strMessage += FormatMessage(END_MESSAGE, skinName + ".zip", 1, false); objZipInputStream.Close(); //process the list of skin files var NewSkin = new SkinFileProcessor(rootPath, skinRoot, skinName); strMessage += NewSkin.ProcessList(arrSkinFiles, SkinParser.Portable); //log installation event try { var objEventLogInfo = new LogInfo(); objEventLogInfo.LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString(); objEventLogInfo.LogProperties.Add(new LogDetailInfo("Install Skin:", skinName)); Array arrMessage = strMessage.Split(new[] {"<br />"}, StringSplitOptions.None); foreach (string strRow in arrMessage) { objEventLogInfo.LogProperties.Add(new LogDetailInfo("Info:", HtmlUtils.StripTags(strRow, true))); } var objEventLog = new EventLogController(); objEventLog.AddLog(objEventLogInfo); } catch (Exception exc) { Logger.Error(exc); } return strMessage; }
public abstract void DeleteLog(LogInfo logInfo);
/// <summary> /// logs an exception related to a module provider once per cache-lifetime /// </summary> /// <param name="ex"></param> /// <param name="status"></param> /// <param name="result"></param> /// <param name="messages"></param> /// <param name="provider"></param> public static void LogModuleProviderExceptionInRequest(Exception ex, string status, ExtensionUrlProvider provider, UrlAction result, List<string> messages) { if (ex != null) { string moduleProviderName = "Unknown Provider"; string moduleProviderVersion = "Unknown Version"; if (provider != null) { moduleProviderName = provider.ProviderConfig.ProviderName; moduleProviderVersion = provider.GetType().Assembly.GetName(false).Version.ToString(); } //this logic prevents a site logging an exception for every request made. Instead //the exception will be logged once for the life of the cache / application restart or 1 hour, whichever is shorter. //create a cache key for this exception type string cacheKey = ex.GetType().ToString(); //see if there is an existing object logged for this exception type object existingEx = DataCache.GetCache(cacheKey); if (existingEx == null) { //if there was no existing object logged for this exception type, this is a new exception DateTime expire = DateTime.Now.AddHours(1); DataCache.SetCache(cacheKey, cacheKey, expire); //just store the cache key - it doesn't really matter //create a log event string productVer = Assembly.GetExecutingAssembly().GetName(false).Version.ToString(); var elc = new EventLogController(); var logEntry = new LogInfo {LogTypeKey = "GENERAL_EXCEPTION"}; logEntry.AddProperty("Url Rewriting Extension Url Provider Exception", "Exception in Url Rewriting Process"); logEntry.AddProperty("Provider Name", moduleProviderName); logEntry.AddProperty("Provider Version", moduleProviderVersion); logEntry.AddProperty("Http Status", status); logEntry.AddProperty("Product Version", productVer); if (result != null) { logEntry.AddProperty("Original Path", result.OriginalPath ?? "null"); logEntry.AddProperty("Raw Url", result.RawUrl ?? "null"); logEntry.AddProperty("Final Url", result.FinalUrl ?? "null"); logEntry.AddProperty("Rewrite Result", !string.IsNullOrEmpty(result.RewritePath) ? result.RewritePath : "[no rewrite]"); logEntry.AddProperty("Redirect Location", string.IsNullOrEmpty(result.FinalUrl) ? "[no redirect]" : result.FinalUrl); logEntry.AddProperty("Action", result.Action.ToString()); logEntry.AddProperty("Reason", result.Reason.ToString()); logEntry.AddProperty("Portal Id", result.PortalId.ToString()); logEntry.AddProperty("Tab Id", result.TabId.ToString()); logEntry.AddProperty("Http Alias", result.PortalAlias != null ? result.PortalAlias.HTTPAlias : "Null"); if (result.DebugMessages != null) { int i = 1; foreach (string debugMessage in result.DebugMessages) { string msg = debugMessage; if (debugMessage == null) { msg = "[message was null]"; } logEntry.AddProperty("Debug Message[result] " + i.ToString(), msg); i++; } } } else { logEntry.AddProperty("Result", "Result value null"); } if (messages != null) { int i = 1; foreach (string msg in messages) { logEntry.AddProperty("Debug Message[raw] " + i.ToString(), msg); i++; } } logEntry.AddProperty("Exception Type", ex.GetType().ToString()); logEntry.AddProperty("Message", ex.Message); logEntry.AddProperty("Stack Trace", ex.StackTrace); if (ex.InnerException != null) { logEntry.AddProperty("Inner Exception Message", ex.InnerException.Message); logEntry.AddProperty("Inner Exception Stacktrace", ex.InnerException.StackTrace); } logEntry.BypassBuffering = true; elc.AddLog(logEntry); } } }
private void OnPreRequestHandlerExecute(object sender, EventArgs e) { try { //First check if we are upgrading/installing or if it is a non-page request var app = (HttpApplication) sender; HttpRequest request = app.Request; if (!Initialize.ProcessHttpModule(request, false, false)) { return; } if (HttpContext.Current != null) { HttpContext context = HttpContext.Current; if ((context == null)) { return; } var page = context.Handler as CDefault; if ((page == null)) { return; } page.Load += OnPageLoad; } } catch (Exception ex) { var log = new LogInfo {LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString()}; log.AddProperty("Analytics.AnalyticsModule", "OnPreRequestHandlerExecute"); log.AddProperty("ExceptionMessage", ex.Message); LogController.Instance.AddLog(log); Logger.Error(log); } }
/// ----------------------------------------------------------------------------- /// <summary> /// Logs the Install event to the Event Log /// </summary> /// <param name="package">The name of the package</param> /// <param name="eventType">Event Type.</param> /// ----------------------------------------------------------------------------- private void LogInstallEvent(string package, string eventType) { try { var objEventLogInfo = new LogInfo(); objEventLogInfo.LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString(); if (InstallerInfo.ManifestFile != null) { objEventLogInfo.LogProperties.Add(new LogDetailInfo(eventType + " " + package + ":", InstallerInfo.ManifestFile.Name.Replace(".dnn", ""))); } foreach (LogEntry objLogEntry in InstallerInfo.Log.Logs) { objEventLogInfo.LogProperties.Add(new LogDetailInfo("Info:", objLogEntry.Description)); } var objEventLog = new EventLogController(); objEventLog.AddLog(objEventLogInfo); } catch (Exception exc) { Logger.Error(exc); } }
/// <summary> /// LogEnd logs the Application Start Event /// </summary> /// <history> /// [cnurse] 1/28/2005 Moved back to App_End from Logging Module /// </history> private void LogEnd() { try { EventLogController objEv = new EventLogController(); LogInfo objEventLogInfo = new LogInfo(); objEventLogInfo.BypassBuffering = true; objEventLogInfo.LogTypeKey = EventLogController.EventLogType.APPLICATION_SHUTTING_DOWN.ToString(); objEv.AddLog( objEventLogInfo ); } catch( Exception exc ) { Exceptions.LogException( exc ); } // purge log buffer LoggingProvider.Instance().PurgeLogBuffer(); }
private static void FavIconsToPortalSettings() { DnnInstallLogger.InstallLogInfo(Localization.Localization.GetString("LogStart", Localization.Localization.GlobalResourceFile) + "FavIconsToPortalSettings"); const string fileName = "favicon.ico"; var portals = PortalController.Instance.GetPortals().Cast<PortalInfo>(); foreach (var portalInfo in portals) { string localPath = Path.Combine(portalInfo.HomeDirectoryMapPath, fileName); if (File.Exists(localPath)) { try { int fileId; var folder = FolderManager.Instance.GetFolder(portalInfo.PortalID, ""); if (!FileManager.Instance.FileExists(folder, fileName)) { using (var stream = File.OpenRead(localPath)) { FileManager.Instance.AddFile(folder, fileName, stream, /*overwrite*/ false); } } fileId = FileManager.Instance.GetFile(folder, fileName).FileId; new FavIcon(portalInfo.PortalID).Update(fileId); } catch (Exception e) { string message = string.Format("Unable to setup Favicon for Portal: {0}", portalInfo.PortalName); var log = new LogInfo {LogTypeKey = EventLogController.EventLogType.ADMIN_ALERT.ToString()}; log.AddProperty("Issue", message); log.AddProperty("ExceptionMessage", e.Message); log.AddProperty("StackTrace", e.StackTrace); LogController.Instance.AddLog(log); Logger.Warn(message, e); } } } }
/// <summary> /// LogStart logs the Application Start Event /// </summary> /// <remarks> /// </remarks> /// <history> /// [cnurse] 1/27/2005 Moved back to App_Start from Logging Module /// </history> public static void LogStart() { EventLogController objEv = new EventLogController(); LogInfo objEventLogInfo = new LogInfo(); objEventLogInfo.BypassBuffering = true; objEventLogInfo.LogTypeKey = EventLogController.EventLogType.APPLICATION_START.ToString(); objEv.AddLog( objEventLogInfo ); }
///----------------------------------------------------------------------------- ///<summary> /// UpgradeVersion upgrades a single version ///</summary> ///<remarks> ///</remarks> ///<param name = "scriptFile">The upgrade script file</param> ///<param name="writeFeedback">Write status to Response Stream?</param> ///<history> /// [cnurse] 02/14/2007 created ///</history> ///----------------------------------------------------------------------------- public static string UpgradeVersion(string scriptFile, bool writeFeedback) { DnnInstallLogger.InstallLogInfo(Localization.Localization.GetString("LogStart", Localization.Localization.GlobalResourceFile) + "UpgradeVersion:" + scriptFile); var version = new Version(GetFileNameWithoutExtension(scriptFile)); string exceptions = Null.NullString; // verify script has not already been run if (!Globals.FindDatabaseVersion(version.Major, version.Minor, version.Build)) { // execute script file (and version upgrades) for version exceptions = ExecuteScript(scriptFile, writeFeedback); // update the version Globals.UpdateDataBaseVersion(version); var log = new LogInfo { LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString(), BypassBuffering = true }; log.AddProperty("Upgraded DotNetNuke", "Version: " + Globals.FormatVersion(version)); if (exceptions.Length > 0) { log.AddProperty("Warnings", exceptions); } else { log.AddProperty("No Warnings", ""); } LogController.Instance.AddLog(log); } if (string.IsNullOrEmpty(exceptions)) { DnnInstallLogger.InstallLogInfo(Localization.Localization.GetString("LogStart", Localization.Localization.GlobalResourceFile) + "UpgradeVersion:" + scriptFile); } else { DnnInstallLogger.InstallLogError(exceptions); } return exceptions; }
/// <inheritdoc/> public void DeleteLog(LogInfo logInfo) { LoggingProvider.Instance().DeleteLog(logInfo); }