public static GetLogPathFromCurrentContext ( ) : string | ||
리턴 | string |
public SyndicationServiceBase() { InitializeComponent(); if (Context != null) { siteConfig = SiteConfig.GetSiteConfig(); loggingService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext()); dataService = BlogDataServiceFactory.GetService(SiteConfig.GetContentPathFromCurrentContext(), loggingService); cache = CacheFactory.GetCache(); } }
private static bool TryGetType(string typeName, out Type type) { type = null; if (string.IsNullOrEmpty(typeName)) { return(false); } try { type = Type.GetType(typeName, /* throw on error */ true, /* ignore case */ true); return(true); } catch (Exception exc) { // prevents the editentry page from failing when the configured editor is not (or no longer) supported ILoggingDataService loggingService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext()); string message = String.Format("Failed to load configured editor type. \"{0}\" Exception: \"{1}\"", typeName, exc); loggingService.AddEvent(new EventDataItem(EventCodes.Error, message, HttpContext.Current.Request.Url.ToString())); } return(false); }
private static bool TryCreateControl(Type editControlType, out EditControlAdapter editControl) { editControl = null; try { editControl = (EditControlAdapter)Activator.CreateInstance(editControlType); return(true); } catch (Exception exc) { // prevents the editentry page from failing when the configured editor is not (or no longer) supported ILoggingDataService loggingService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext()); string message = String.Format("Failed to load configured editor type. \"{0}\" Exception: \"{1}\"", editControlType, exc); loggingService.AddEvent(new EventDataItem(EventCodes.Error, message, HttpContext.Current.Request.Url.ToString())); } return(false); }
protected void Application_Start(Object sender, EventArgs e) { //We clear out the Cache on App Restart... CacheFactory.GetCache().Clear(); ILoggingDataService loggingService = null; loggingService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext()); loggingService.AddEvent(new EventDataItem(EventCodes.ApplicationStartup, "", "")); SiteConfig siteConfig = SiteConfig.GetSiteConfig(SiteConfig.GetConfigFilePathFromCurrentContext()); //if (siteConfig.EnableReportMailer) { reportMailer = new ReportMailer( SiteConfig.GetConfigFilePathFromCurrentContext(), SiteConfig.GetContentPathFromCurrentContext(), SiteConfig.GetLogPathFromCurrentContext() ); reportMailerThread = new Thread(new ThreadStart(reportMailer.Run)); reportMailerThread.Name = "ReportMailer"; reportMailerThread.IsBackground = true; reportMailerThread.Start(); } if (siteConfig.EnablePop3) { mailToWeblog = new MailToWeblog( SiteConfig.GetConfigFilePathFromCurrentContext(), SiteConfig.GetContentPathFromCurrentContext(), SiteConfig.GetBinariesPathFromCurrentContext(), SiteConfig.GetLogPathFromCurrentContext(), new Uri(new Uri(SiteConfig.GetSiteConfig().Root), SiteConfig.GetSiteConfig().BinariesDirRelative) ); mailToWeblogThread = new Thread(new ThreadStart(mailToWeblog.Run)); mailToWeblogThread.Name = "MailToWeblog"; mailToWeblogThread.IsBackground = true; mailToWeblogThread.Start(); } if (siteConfig.EnableXSSUpstream) { xssUpstreamer = new XSSUpstreamer( SiteConfig.GetConfigFilePathFromCurrentContext(), SiteConfig.GetContentPathFromCurrentContext(), SiteConfig.GetLogPathFromCurrentContext() ); xssUpstreamerThread = new Thread(new ThreadStart(xssUpstreamer.Run)); xssUpstreamerThread.Name = "XSSUpstreamer"; xssUpstreamerThread.IsBackground = true; xssUpstreamerThread.Start(); } /* * if (siteConfig.EnableMovableTypeBlackList) * { * ReferralBlackListFactory.AddBlacklist(new MovableTypeBlacklist(), Path.Combine(SiteConfig.GetConfigPathFromCurrentContext(), "blacklist.txt")); * } */ if (siteConfig.EnableReferralUrlBlackList && siteConfig.ReferralUrlBlackList.Length != 0) { ReferralBlackListFactory.AddBlacklist(new ReferralUrlBlacklist(), siteConfig.ReferralUrlBlackList); } }
private void ClickThroughsBox_PreRender(object sender, EventArgs e) { Control root = contentPlaceHolder; SiteConfig siteConfig = SiteConfig.GetSiteConfig(); ILoggingDataService logService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext()); IBlogDataService dataService = BlogDataServiceFactory.GetService(SiteConfig.GetContentPathFromCurrentContext(), logService); Dictionary <string, int> clickThroughUrls = new Dictionary <string, int>(); Dictionary <string, int> userAgents = new Dictionary <string, int>(); Dictionary <string, int> userDomains = new Dictionary <string, int>(); // get the user's local time DateTime utcTime = DateTime.UtcNow; DateTime localTime = siteConfig.GetConfiguredTimeZone().ToLocalTime(utcTime); if (Request.QueryString["date"] != null) { try { DateTime popUpTime = DateTime.ParseExact(Request.QueryString["date"], "yyyy-MM-dd", CultureInfo.InvariantCulture); utcTime = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, utcTime.Hour, utcTime.Minute, utcTime.Second); localTime = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, localTime.Hour, localTime.Minute, localTime.Second); } catch (FormatException ex) { ErrorTrace.Trace(System.Diagnostics.TraceLevel.Error, ex); } } LogDataItemCollection logItems = new LogDataItemCollection(); logItems.AddRange(logService.GetClickThroughsForDay(localTime)); if (siteConfig.AdjustDisplayTimeZone) { newtelligence.DasBlog.Util.WindowsTimeZone tz = siteConfig.GetConfiguredTimeZone(); TimeSpan ts = tz.GetUtcOffset(DateTime.UtcNow); int offset = ts.Hours; if (offset < 0) { logItems.AddRange(logService.GetClickThroughsForDay(localTime.AddDays(1))); } else { logItems.AddRange(logService.GetClickThroughsForDay(localTime.AddDays(-1))); } } foreach (LogDataItem log in logItems) { bool exclude = false; if (siteConfig.AdjustDisplayTimeZone) { if (siteConfig.GetConfiguredTimeZone().ToLocalTime(log.RequestedUtc).Date != localTime.Date) { exclude = true; } } if (!exclude) { string key = log.UrlRequested + "°" + log.UrlReferrer; if (!clickThroughUrls.ContainsKey(key)) { clickThroughUrls[key] = 0; } clickThroughUrls[key] = clickThroughUrls[key] + 1; if (!userAgents.ContainsKey(log.UserAgent)) { userAgents[log.UserAgent] = 0; } userAgents[log.UserAgent] = userAgents[log.UserAgent] + 1; if (!userDomains.ContainsKey(log.UserDomain)) { userDomains[log.UserDomain] = 0; } userDomains[log.UserDomain] = userDomains[log.UserDomain] + 1; } } root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(clickThroughUrls), resmgr.GetString("text_activity_click_throughs"), resmgr.GetString("text_activity_clicks"), new StatisticsBuilderCallback(this.BuildClickThroughsRow), dataService)); root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(userDomains), resmgr.GetString("text_activity_user_domains"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildUserDomainRow), dataService)); root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(userAgents), resmgr.GetString("text_activity_user_agent"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildAgentsRow), dataService)); DataBind(); }
private void ClickThroughsBox_PreRender(object sender, EventArgs e) { if (_robotDefinition == null) { return; } Control root = contentPlaceHolder; SiteConfig siteConfig = SiteConfig.GetSiteConfig(); ILoggingDataService logService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext()); IBlogDataService dataService = BlogDataServiceFactory.GetService(SiteConfig.GetContentPathFromCurrentContext(), logService); Dictionary <string, int> clickThroughUrls = new Dictionary <string, int>(); Dictionary <string, int> userAgents = new Dictionary <string, int>(); Dictionary <string, int> userDomains = new Dictionary <string, int>(); DateTime serverTimeUtc = DateTime.Now.ToUniversalTime(); DateTime localTime = siteConfig.GetConfiguredTimeZone().ToLocalTime(serverTimeUtc); if (Request.QueryString["date"] != null) { try { DateTime popUpTime = DateTime.ParseExact(Request.QueryString["date"], "yyyy-MM-dd", CultureInfo.InvariantCulture); localTime = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day); serverTimeUtc = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, 23, 59, 59).ToUniversalTime(); } catch (FormatException ex) { ErrorTrace.Trace(System.Diagnostics.TraceLevel.Error, ex); } } LogDataItemCollection logItems = new LogDataItemCollection(); logItems.AddRange(logService.GetClickThroughsForDay(serverTimeUtc)); // depending on the offset (positive or negative) we want to grab events in the // next or previos day to account for timezone difference. if (siteConfig.AdjustDisplayTimeZone) { newtelligence.DasBlog.Util.WindowsTimeZone tz = siteConfig.GetConfiguredTimeZone(); TimeSpan ts = tz.GetUtcOffset(DateTime.Now); int offset = ts.Hours; if (serverTimeUtc.Date != serverTimeUtc.AddHours(offset).Date) { logItems.AddRange(logService.GetClickThroughsForDay(serverTimeUtc.AddHours(offset))); } } foreach (LogDataItem log in logItems) { bool exclude = false; if (siteConfig.AdjustDisplayTimeZone) { if (siteConfig.GetConfiguredTimeZone().ToLocalTime(log.RequestedUtc).Date != localTime.Date) { exclude = true; } } if (_robotDefinition.IsRobot(log)) { exclude = true; } if (!exclude) { string key = log.UrlRequested + "°" + log.UrlReferrer; if (!clickThroughUrls.ContainsKey(key)) { clickThroughUrls[key] = 0; } clickThroughUrls[key] = clickThroughUrls[key] + 1; if (!userAgents.ContainsKey(log.UserAgent)) { userAgents[log.UserAgent] = 0; } userAgents[log.UserAgent] = userAgents[log.UserAgent] + 1; // AG User domain added. if (!userDomains.ContainsKey(log.UserDomain)) { userDomains[log.UserDomain] = 0; } userDomains[log.UserDomain] = userDomains[log.UserDomain] + 1; } } root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(clickThroughUrls), resmgr.GetString("text_activity_click_throughs"), resmgr.GetString("text_activity_clicks"), new StatisticsBuilderCallback(this.BuildClickThroughsRow), dataService)); root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(userDomains), resmgr.GetString("text_activity_user_domains"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildUserDomainRow), dataService)); root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(userAgents), resmgr.GetString("text_activity_user_agent"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildAgentsRow), dataService)); DataBind(); }
private void ReferrersBox_PreRender(object sender, EventArgs e) { Control root = contentPlaceHolder; SiteConfig siteConfig = SiteConfig.GetSiteConfig(); ILoggingDataService logService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext()); string siteRoot = siteConfig.Root.ToUpper(); Dictionary <string, int> referrerUrls = new Dictionary <string, int>(); Dictionary <string, int> userAgents = new Dictionary <string, int>(); Dictionary <string, int> searchUrls = new Dictionary <string, int>(); Dictionary <string, int> userDomains = new Dictionary <string, int>(); // get the user's local time DateTime utcTime = DateTime.UtcNow; DateTime localTime = siteConfig.GetConfiguredTimeZone().ToLocalTime(utcTime); if (Request.QueryString["date"] != null) { try { DateTime popUpTime = DateTime.ParseExact(Request.QueryString["date"], "yyyy-MM-dd", CultureInfo.InvariantCulture); utcTime = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, utcTime.Hour, utcTime.Minute, utcTime.Second); localTime = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, localTime.Hour, localTime.Minute, localTime.Second); } catch (FormatException ex) { ErrorTrace.Trace(System.Diagnostics.TraceLevel.Error, ex); } } LogDataItemCollection logItems = new LogDataItemCollection(); logItems.AddRange(logService.GetReferralsForDay(localTime)); if (siteConfig.AdjustDisplayTimeZone) { newtelligence.DasBlog.Util.WindowsTimeZone tz = siteConfig.GetConfiguredTimeZone(); TimeSpan ts = tz.GetUtcOffset(DateTime.UtcNow); int offset = ts.Hours; if (offset < 0) { logItems.AddRange(logService.GetReferralsForDay(localTime.AddDays(1))); } else { logItems.AddRange(logService.GetReferralsForDay(localTime.AddDays(-1))); } } foreach (LogDataItem log in logItems) { bool exclude = false; if (log.UrlReferrer != null) { exclude = log.UrlReferrer.ToUpper().StartsWith(siteRoot); // Let Utils.ParseSearchString decide whether it's a search engine referrer. if (SiteUtilities.ParseSearchString(log.UrlReferrer) != null) { exclude = true; bool addToSearches = true; if (siteConfig.AdjustDisplayTimeZone) { if (siteConfig.GetConfiguredTimeZone().ToLocalTime(log.RequestedUtc).Date != localTime.Date) { addToSearches = false; } } if (addToSearches) { if (!searchUrls.ContainsKey(log.UrlReferrer)) { searchUrls[log.UrlReferrer] = 0; } searchUrls[log.UrlReferrer] = searchUrls[log.UrlReferrer] + 1; } } } if (siteConfig.AdjustDisplayTimeZone) { if (siteConfig.GetConfiguredTimeZone().ToLocalTime(log.RequestedUtc).Date != localTime.Date) { exclude = true; } } if (!exclude) { if (!referrerUrls.ContainsKey(log.UrlReferrer)) { referrerUrls[log.UrlReferrer] = 0; } referrerUrls[log.UrlReferrer] = referrerUrls[log.UrlReferrer] + 1; log.UserAgent = Server.HtmlEncode(log.UserAgent); if (!userAgents.ContainsKey(log.UserAgent)) { userAgents[log.UserAgent] = 0; } userAgents[log.UserAgent] = userAgents[log.UserAgent] + 1; if (!userDomains.ContainsKey(log.UserDomain)) { userDomains[log.UserDomain] = 0; } userDomains[log.UserDomain] = userDomains[log.UserDomain] + 1; } } Table rollupTable = new Table(); rollupTable.CssClass = "statsTableStyle"; TableRow row = new TableRow(); row.CssClass = "statsTableHeaderRowStyle"; row.Cells.Add(new TableCell()); row.Cells.Add(new TableCell()); row.Cells[0].CssClass = "statsTableHeaderColumnStyle"; row.Cells[1].CssClass = "statsTableHeaderNumColumnStyle"; row.Cells[0].Text = resmgr.GetString("text_activity_summary"); row.Cells[1].Text = resmgr.GetString("text_activity_hits"); rollupTable.Rows.Add(row); //SDH: I know this is gross, but I didn't want to totally rewrite this whole thing, I just wanted to get the rollup to work string total = String.Empty; Table internetSearchesTable = BuildStatisticsTable(GenerateSortedSearchStringItemList(searchUrls), resmgr.GetString("text_activity_internet_searches"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildSearchesRow), out total, null); BuildRow(total, rollupTable, resmgr.GetString("text_activity_internet_searches")); Table userDomainsTable = BuildStatisticsTable(GenerateSortedItemList(userDomains), resmgr.GetString("text_activity_user_domains"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildUserDomainRow), out total, null); Table userAgentsTable = BuildStatisticsTable(GenerateSortedItemList(userAgents), resmgr.GetString("text_activity_user_agent"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildAgentsRow), out total, null); Table referrerUrlsTable = BuildStatisticsTable(GenerateSortedItemList(referrerUrls), resmgr.GetString("text_activity_referrer_urls"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildReferrerRow), out total, null); BuildRow(total, rollupTable, resmgr.GetString("text_activity_referrer_urls")); root.Controls.Add(rollupTable); root.Controls.Add(internetSearchesTable); root.Controls.Add(referrerUrlsTable); root.Controls.Add(userDomainsTable); root.Controls.Add(userAgentsTable); //root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(userAgents), CONSTUSERAGENTSLIST, CONSTHITS, new StatisticsBuilderCallback(this.BuildAgentsRow), out total, null)); DataBind(); }
private void EventlogBox_PreRender(object sender, EventArgs e) { SiteConfig siteConfig = SiteConfig.GetSiteConfig(); Control root = contentPlaceHolder; ILoggingDataService logService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext()); Table table = new Table(); table.CssClass = "statsTableStyle"; TableRow row = new TableRow(); row.CssClass = "statsTableHeaderRowStyle"; row.Cells.Add(new TableCell()); row.Cells.Add(new TableCell()); row.Cells.Add(new TableCell()); row.Cells[0].CssClass = "statsTableDateColumnStyle"; row.Cells[1].CssClass = "statsTableNumColumnStyle"; row.Cells[2].CssClass = "statsTableColumnStyle"; row.Cells[0].Text = "<b>" + resmgr.GetString("text_time") + "</b>"; row.Cells[1].Text = "<b>" + resmgr.GetString("text_message_code") + "</b>"; row.Cells[2].Text = "<b>" + resmgr.GetString("text_message_text") + "</b>"; table.Rows.Add(row); // get the user's local time DateTime utcTime = DateTime.UtcNow; DateTime localTime = siteConfig.GetConfiguredTimeZone().ToLocalTime(utcTime); if (Request.QueryString["date"] != null) { try { DateTime popUpTime = DateTime.ParseExact(Request.QueryString["date"], "yyyy-MM-dd", CultureInfo.InvariantCulture); utcTime = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, utcTime.Hour, utcTime.Minute, utcTime.Second); localTime = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, localTime.Hour, localTime.Minute, localTime.Second); } catch (FormatException ex) { ErrorTrace.Trace(System.Diagnostics.TraceLevel.Error, ex); } } EventDataItemCollection logItems = new EventDataItemCollection(); logItems.AddRange(logService.GetEventsForDay(localTime)); if (siteConfig.AdjustDisplayTimeZone) { newtelligence.DasBlog.Util.WindowsTimeZone tz = siteConfig.GetConfiguredTimeZone(); TimeSpan ts = tz.GetUtcOffset(DateTime.UtcNow); int offset = ts.Hours; if (offset < 0) { logItems.AddRange(logService.GetEventsForDay(localTime.AddDays(1))); } else { logItems.AddRange(logService.GetEventsForDay(localTime.AddDays(-1))); } } EventDataItem[] sortedLogItems = logItems.ToSortedArray(); foreach (EventDataItem eventItem in sortedLogItems) { if (siteConfig.AdjustDisplayTimeZone) { if (siteConfig.GetConfiguredTimeZone().ToLocalTime(eventItem.EventTimeUtc).Date != localTime.Date) { continue; } } row = new TableRow(); row.CssClass = "statsTableRowStyle"; switch (eventItem.EventCode) { case ((int)EventCodes.Error): case ((int)EventCodes.PingbackServerError): case ((int)EventCodes.PingWeblogsError): case ((int)EventCodes.Pop3ServerError): case ((int)EventCodes.SmtpError): row.CssClass = "statsTableRowStyleError"; break; case ((int)EventCodes.SecurityFailure): row.CssClass = "statsTableRowStyleSecurityFailure"; break; case ((int)EventCodes.TrackbackBlocked): case ((int)EventCodes.ReferralBlocked): case ((int)EventCodes.ItemReferralBlocked): case ((int)EventCodes.CommentBlocked): case ((int)EventCodes.PingbackBlocked): row.CssClass = "statsTableRowStyleBlocked"; break; default: break; } row.Cells.Add(new TableCell()); row.Cells.Add(new TableCell()); row.Cells.Add(new TableCell()); row.Cells[0].CssClass = "statsTableDateColumnStyle"; row.Cells[1].CssClass = "statsTableNumColumnStyle"; row.Cells[2].CssClass = "statsTableColumnStyle"; if (siteConfig.AdjustDisplayTimeZone) { row.Cells[0].Text = siteConfig.GetConfiguredTimeZone().ToLocalTime(eventItem.EventTimeUtc).ToString("yyyy-MM-dd HH:mm:ss tt"); } else { row.Cells[0].Text = eventItem.EventTimeUtc.ToString("yyyy-MM-dd HH:mm:ss tt") + " UTC"; } row.Cells[1].Text = eventItem.EventCode.ToString(); row.Cells[2].Text = eventItem.HtmlMessage; table.Rows.Add(row); } root.Controls.Add(table); DataBind(); }
/// <summary> /// This function takes a password, the challenge and the userName to /// make an super challenge like on the client side. /// </summary> /// <param name="userName"></param> /// <param name="clientHash"></param> /// <param name="challenge"></param> /// <returns>user as UserToken.</returns> public static UserToken Login(string userName, string clientHash, string challenge) { ILoggingDataService loggingService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext()); UserToken token = null; /* * SiteSecurityConfig ssc = GetSecurity(); * foreach (User user in ssc.Users) * { * if (user.Active && user.Name.Equals(userName, StringComparison.InvariantCultureIgnoreCase)) * { * if (DoSuperChallenge(challenge, user.Password, userName, clientHash)) * { * token = user.ToToken(); * break; * } * } * } */ User user = GetUser(userName); if (user != null && user.Active && DoSuperChallenge(challenge, user.Password, userName, clientHash)) { token = user.ToToken(); } if (token == null) { SiteSecurity.LogFailure(userName); } else { SiteSecurity.LogSuccess(token.Name); GenericIdentity identity = new GenericIdentity(token.Name, "Custom"); GenericPrincipal principal = new GenericPrincipal(identity, new string[] { token.Role }); HttpContext.Current.User = principal; System.Threading.Thread.CurrentPrincipal = principal; } return(token); }
private static void LogSuccess(string userName) { ILoggingDataService loggingService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext()); if (HttpContext.Current == null) { loggingService.AddEvent(new EventDataItem(EventCodes.SecuritySuccess, userName, "non-web")); } else { loggingService.AddEvent(new EventDataItem(EventCodes.SecuritySuccess, userName, HttpContext.Current.Request.UserHostAddress)); } }