/// <summary> /// 获取短网址主域名 /// </summary> /// <returns></returns> public static string GetUrlDomain() { string urlDomain = DIContainer.Resolve <IShortUrlSettingsManager>().Get().ShortUrlDomain; if (!string.IsNullOrEmpty(urlDomain)) { return(urlDomain); } if (HttpContext.Current != null && HttpContext.Current.Request != null) { urlDomain = WebUtility.HostPath(HttpContext.Current.Request.Url); return(urlDomain); } else { ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); if (!string.IsNullOrEmpty(siteSettings.MainSiteRootUrl)) { return(siteSettings.MainSiteRootUrl); } } return(string.Empty); }
/// <summary> /// 更新皮肤 /// </summary> /// <param name="ownerId">拥有者Id(如:用户Id、群组Id)</param> /// <param name="isUseCustomStyle">是否使用自定义皮肤</param> /// <param name="themeAppearance">themeKey与appearanceKey用逗号关联</param> public void ChangeThemeAppearance(long ownerId, bool isUseCustomStyle, string themeAppearance) { ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); string themeKey = null; string appearanceKey = null; string[] themeAppearanceArray = themeAppearance.Split(','); if (themeAppearanceArray.Count() == 2) { themeKey = themeAppearanceArray[0]; appearanceKey = themeAppearanceArray[1]; } else { PresentArea pa = new PresentAreaService().Get(PresentAreaKeysOfBuiltIn.Channel); if (pa != null) { themeKey = pa.DefaultThemeKey; appearanceKey = pa.DefaultAppearanceKey; } } siteSettings.SiteTheme = themeKey; siteSettings.SiteThemeAppearance = appearanceKey; siteSettingsManager.Save(siteSettings); }
public void OnAuthorization(AuthorizationContext filterContext) { if (filterContext == null) { throw new ArgumentNullException("filterContext"); } if (filterContext.IsChildAction) { return; } IUser currentUser = UserContext.CurrentUser; if (currentUser == null) { ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); if (!siteSettings.EnableAnonymousBrowse) { if (filterContext.RequestContext.HttpContext.Request.IsAjaxRequest()) { filterContext.Result = new EmptyResult(); } else { filterContext.Result = new RedirectResult(SiteUrls.Instance().Login(true)); } return; } } }
/// <summary> /// 创建一个新的统计账户 /// </summary> /// <returns></returns> public StatisticsAccount CreatNewAccount() { ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); string key = EncryptionUtility.MD5(siteSettings.MainSiteRootUrl + "A4ba4oqS").ToLower(); string creatLink = string.Format("http://wss.cnzz.com/user/companion/spacebuilder.php?domain={0}&key={1}", siteSettings.MainSiteRootUrl, key); string webMatter = HttpCollects.GetHTMLContent(creatLink, Encoding.GetEncoding("gb2312"), null); string errorMessage = null; switch (webMatter.Trim()) { case "": errorMessage = "远程站点没有响应"; break; case "-1": errorMessage = "key输入有误"; break; case "-2": errorMessage = "该域名长度有误(1~64)"; break; case "-3": errorMessage = "域名输入有误(比如输入汉字)"; break; case "-4": errorMessage = "域名插入数据库有误"; break; case "-5": errorMessage = "同一个IP用户调用页面超过阀值,阀值暂定为10"; break; } if (!string.IsNullOrEmpty(errorMessage)) { throw new Exception("创建统计帐号出错,错误信息:" + errorMessage); } string siteIdStr = webMatter.Substring(0, webMatter.IndexOf('@')); string passwordStr = webMatter.Substring(webMatter.IndexOf('@') + 1); long siteId = 0; long password = 0; StatisticsAccount account = new StatisticsAccount(); if (long.TryParse(siteIdStr, out siteId) && long.TryParse(passwordStr, out password)) { account.Password = password.ToString(); account.UserName = siteId.ToString(); return(account); } return(null); }
/// <summary> /// 页脚 /// </summary> /// <returns></returns> public ActionResult _Footer(string spaceKey) { ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); ViewData["SiteSettings"] = siteSettingsManager.Get(); return(PartialView()); }
/// <summary> /// 转为Html属性集合 /// </summary> public IDictionary <string, object> ToUnobtrusiveHtmlAttributes() { var result = new Dictionary <string, object>(); if (HtmlAttributes != null) { result = new Dictionary <string, object>(HtmlAttributes); } if (result.Any(n => n.Key == "style")) { result["style"] += "width:100%;"; } else { result["style"] = "width:100%;"; } result["plugin"] = "tinymce"; var data = new Dictionary <string, object>(); if (AdditionalOptions != null) { data = new Dictionary <string, object>(AdditionalOptions); } data.TryAdd("editorMode", this.EditorMode.ToString()); data.TryAdd("lazyload", this.Lazyload); ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); data.TryAdd("language", siteSettings.DefaultLanguage.ToLower()); bool tinyMCEJavaScriptGzipEnabled = false; bool.TryParse(ConfigurationManager.AppSettings["HttpCompressEnabled"], out tinyMCEJavaScriptGzipEnabled); if (tinyMCEJavaScriptGzipEnabled) { data.TryAdd("script_url", WebUtility.ResolveUrl("~/scripts/tinymce/tiny_mce_gzip.ashx")); } else { data.TryAdd("script_url", WebUtility.ResolveUrl("~/scripts/tinymce/tiny_mce_src.js")); } result.Add("data", Json.Encode(data)); if (this.CustomButtons == null) { this.CustomButtons = new Dictionary <string, string>(); } if (this.ShowSmileyButton) { this.CustomButtons["smileyButton"] = SiteUrls.Instance()._EmotionSelector(); } result.TryAdd("customButtons", Json.Encode(this.CustomButtons)); return(result); }
/// <summary> /// 获取邮件模板的全局数据字典 /// </summary> /// <param name="emailBuilder"></param> /// <returns></returns> public static dynamic GetCommonEmailModel(this EmailBuilder emailBuilder) { ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); dynamic model = new ExpandoObject(); model.SiteName = siteSettings.SiteName; model.AdminAddress = "*****@*****.**"; model.LoginUrl = SiteUrls.FullUrl(SiteUrls.Instance().Login()); model.HomeUrl = SiteUrls.FullUrl(SiteUrls.Instance().SiteHome()); model.DateCreated = DateTime.Now.ToString(); return(model); }
/// <summary> /// 获取展示统计页面的连接 /// </summary> /// <returns></returns> public string GetCNZZStatisticsPageLink() { SystemDataService service = new SystemDataService(); long siteId = service.GetLong("CNZZStatisticsSiteId"); long password = service.GetLong("CNZZStatisticsPassword"); ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); if (siteId <= 0 || password <= 0) { return(string.Empty); } return(string.Format("http://wss.cnzz.com/user/companion/spacebuilder_login.php?site_id={0}&password={1}", siteId, password)); }
/// <summary> /// 构造函数 /// </summary> /// <param name="viewContext"></param> /// <param name="title"></param> /// <param name="disableClientCache"></param> /// <param name="charset"></param> public MvcHead(ViewContext viewContext, string title = null, bool disableClientCache = false, string charset = "UTF-8") { if (viewContext == null) { throw new ArgumentNullException("viewContext"); } _viewContext = viewContext; _writer = viewContext.Writer; pageResourceManager = DIContainer.ResolvePerHttpRequest <IPageResourceManager>(); TagBuilder tagBuilder = new TagBuilder("head"); _writer.WriteLine(tagBuilder.ToString(TagRenderMode.StartTag)); _writer.WriteLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset={0}\" />", charset); if (string.IsNullOrEmpty(title)) { if (pageResourceManager.IsAppendSiteName) { ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); pageResourceManager.AppendTitleParts(siteSettingsManager.Get().SiteName); } title = pageResourceManager.GenerateTitle(); } if (!string.IsNullOrEmpty(title)) { _writer.WriteLine("<title>{0}</title>", title); } _writer.WriteLine("<link rel=\"shortcut icon\" type=\"image/ico\" href=\"{0}\" />", pageResourceManager.ShortcutIcon); if (disableClientCache) { _writer.WriteLine("<meta http-equiv=\"Pragma\" content=\"no-cache\" />\n"); _writer.WriteLine("<meta http-equiv=\"no-cache\" />\n"); _writer.WriteLine("<meta http-equiv=\"Expires\" content=\"-1\" />\n"); _writer.WriteLine("<meta http-equiv=\"Cache-Control\" content=\"no-cache\" />\n"); } IList <MetaEntry> metas = pageResourceManager.GetRegisteredMetas(); foreach (var meta in metas) { _writer.WriteLine(meta.GetRenderingTag()); } }
/// <summary> /// 获取忘记密码的ViewModl /// </summary> /// <param name="accountEmail">用户的邮箱</param> /// <returns>默认SendEmailSucceedViewModel</returns> public static SendEmailSucceedViewModel GetFindPasswordSendEmailSucceedViewModel(string accountEmail) { ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); return(new SendEmailSucceedViewModel { AccountEmail = accountEmail, Body = "获取密码的信息已经发送到您的邮箱,请到您的邮箱中获取", ButtonDescription = "立即查看邮箱", Description = "如未收到可以{0}", link = SiteUrls.Instance().FindPassword(accountEmail, true), LinkDescription = "重新发送", Title = "信息已经发送到你的邮箱!", EmailLink = EmailServiceProviderService.Instance().GetEmailSiteUrl(accountEmail) }); }
/// <summary> /// 保存统计帐号 /// <param name="account">被保存的统计帐号</param> /// </summary> public void SaveStatisticsAccount(StatisticsAccount account) { if (account == null || string.IsNullOrEmpty(account.Password) || string.IsNullOrEmpty(account.UserName)) { return; } SystemDataService systemDataService = new SystemDataService(); long siteId = systemDataService.GetLong("CNZZStatisticsSiteId"); long password = systemDataService.GetLong("CNZZStatisticsPassword"); long accountSiteId = 0; if (!long.TryParse(account.UserName, out accountSiteId)) { return; } long accountPassword = 0; if (!long.TryParse(account.Password, out accountPassword)) { return; } if (accountSiteId != siteId) { systemDataService.Change("CNZZStatisticsSiteId", accountSiteId - siteId); } if (accountPassword != password) { systemDataService.Change("CNZZStatisticsPassword", accountPassword - password); } Enable = true; ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); siteSettings.StatScript = GetStatisticsCode(); siteSettingsManager.Save(siteSettings); }
/// <summary> /// 评论日志 /// 1.锁定的日志不允许评论; /// 2.对于匿名用户,根据站点匿名用户; /// </summary> public static bool BlogComment_Create(this Authorizer authorizer, BlogThread blogThread) { //锁定的日志不允许评论 if (blogThread.IsLocked) { return(false); } //允许登录用户 if (UserContext.CurrentUser != null) { return(true); } //判断是否允许匿名用户评论 ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); return(siteSettings.EnableAnonymousPosting); }
public AdminViewProvider( IHtmlLocalizer htmlLocalizer, IStringLocalizer stringLocalizer, ISiteSettingsManager siteSettingsManager, ISiteSettingsStore siteSettingsStore, ITimeZoneProvider timeZoneProvider, IHomeRouteManager homeRouteManager, ILocaleProvider localeProvider, IShellSettings shellSettings, ISiteThemeLoader themeLoader, IPlatoHost platoHost) { _siteSettingsManager = siteSettingsManager; _siteSettingsStore = siteSettingsStore; _timeZoneProvider = timeZoneProvider; _homeRouteManager = homeRouteManager; _localeProvider = localeProvider; _shellSettings = shellSettings; _themeLoader = themeLoader; _platoHost = platoHost; T = htmlLocalizer; S = stringLocalizer; }
/// <summary> /// 获取注册默认发送邮件成功提示 /// </summary> /// <param name="accountEmail">用户的邮箱</param> /// <returns>默认SendEmailSucceedViewModel</returns> public static SendEmailSucceedViewModel GetRegisterSendEmailSucceedViewModel(string accountEmail) { ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); IUser user = new UserService().FindUserByEmail(accountEmail); string token = null; if (user != null) { token = Utility.EncryptTokenForValidateEmail(0.004, user.UserId); } return(new SendEmailSucceedViewModel { AccountEmail = accountEmail, Body = string.Format("邮箱确认邮件已经发送到[{0}],点击邮件里的确认链接即可登录[{1}]", accountEmail, siteSettings.SiteName), ButtonDescription = "立即查看邮箱", Description = "如未收到可以{0}", link = SiteUrls.Instance()._ActivateByEmail(accountEmail, token), LinkDescription = "重新发送", Title = "马上激活邮件,完成注册吧!", EmailLink = EmailServiceProviderService.Instance().GetEmailSiteUrl(accountEmail) }); }
/// <summary> /// 注册路由 /// </summary> /// <param name="context"></param> public override void RegisterArea(AreaRegistrationContext context) { //对于IIS6.0默认配置不支持无扩展名的url string extensionForOldIIS = ".aspx"; int iisVersion = 0; if (!int.TryParse(ConfigurationManager.AppSettings["IISVersion"], out iisVersion)) { iisVersion = 7; } if (iisVersion >= 7) { extensionForOldIIS = string.Empty; } ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); #region Channel context.MapRoute( "Channel_SiteHome", // Route name "", // URL with parameters new { controller = "Channel", action = siteSettings.EnableSimpleHome ? "SimpleHome" : "Home" } // Parameter defaults ); context.MapRoute( "Channel_Home", // Route name "Home" + extensionForOldIIS, // URL with parameters new { controller = "Channel", action = "Home", CurrentNavigationId = "1000001" } // Parameter defaults ); context.MapRoute( "Channel_SimpleHome", // Route name "SimpleHome" + extensionForOldIIS, // URL with parameters new { controller = "Channel", action = "SimpleHome" } // Parameter defaults ); context.MapRoute( "Channel_ShortUrl", "{alias}", new { controller = "Channel", action = "RedirectUrl" }, new { alias = @"([0-9a-zA-Z]{6})|(\{\d+\})" } ); context.MapRoute( "Channel_AnnouncementDetail", // Route name "Announcement/s-{announcementId}" + extensionForOldIIS, // URL with parameters new { controller = "Channel", action = "AnnouncementDetail" }, // Parameter defaults new { announcementId = @"(\d+)|(\{\d+\})" } ); context.MapRoute( "Channel_Account_Comon", // Route name "Account/{action}" + extensionForOldIIS, // URL with parameters new { controller = "Account", action = "Login" } // Parameter defaults ); context.MapRoute( "Channel_Common", // Route name "Channel/{action}" + extensionForOldIIS, // URL with parameters new { controller = "Channel" } // Parameter defaults ); context.MapRoute( "Channel_FindUser_Ranking", // Route name "FindUser/s-{sortBy}-{pageIndex}" + extensionForOldIIS, // URL with parameters new { controller = "FindUser", action = "Ranking" }, // Parameter defaults new { sortBy = @"(\w+)|(\{\w+\})", pageIndex = @"(\d+)|(\{\d+\})" } ); context.MapRoute( "Channel_FindUser", // Route name "FindUser/{action}" + extensionForOldIIS, // URL with parameters new { controller = "FindUser" } // Parameter defaults ); #endregion Channel #region UserSpace context.MapRoute( string.Format("ActivityDetail_{0}_FollowUser", TenantTypeIds.Instance().User()), // Route name "follow/activity/{ActivityId}" + extensionForOldIIS, // URL with parameters new { controller = "Channel", action = "_FollowUserActivity" } // Parameter defaults ); context.MapRoute( "UserSpace_SpaceHome", // Route name "u/{SpaceKey}" + extensionForOldIIS, // URL with parameters new { controller = "UserSpace", action = "SpaceHome", CurrentNavigationId = "11000102" } // Parameter defaults ); context.MapRoute( "UserSpace_MyHome", // Route name "u/{SpaceKey}/MyHome" + extensionForOldIIS, // URL with parameters new { controller = "UserSpace", action = "MyHome", CurrentNavigationId = "11000101" } // Parameter defaults ); context.MapRoute( "UserSpace_Profile", // Route name "u/{spaceKey}/Profile" + extensionForOldIIS, // URL with parameters new { controller = "UserSpace", action = "PersonalInformation", CurrentNavigationId = "11000103" } // Parameter defaults ); context.MapRoute( "UserSpace_InviteFriend", // Route name "u/{spaceKey}/InviteFriend" + extensionForOldIIS, // URL with parameters new { controller = "Follow", action = "InviteFriend" } // Parameter defaults ); context.MapRoute( "UserSpace_IdentificationResult", // Route name "u/{spaceKey}/MyIdentifications" + extensionForOldIIS, // URL with parameters new { controller = "UserSpace", action = "IdentificationResult" } // Parameter defaults ); context.MapRoute( "UserSpace_EditIdentification", // Route name "u/{spaceKey}/ApplyIdentification" + extensionForOldIIS, // URL with parameters new { controller = "UserSpace", action = "EditIdentification" } // Parameter defaults ); context.MapRoute( "UserSpace_Follow_Common", // Route name "u/{spaceKey}/Follow/{action}" + extensionForOldIIS, // URL with parameters new { controller = "Follow" } // Parameter defaults ); context.MapRoute( "UserSpace_MessageCenter_Common", // Route name "u/{SpaceKey}/MessageCenter/{action}" + extensionForOldIIS, // URL with parameters new { controller = "MessageCenter", action = "ListMessageSessions" } // Parameter defaults ); context.MapRoute( "UserSpace_Settings_EditUserProfile", // Route name "u/{SpaceKey}/Settings/EditUserProfile" + extensionForOldIIS, // URL with parameters new { controller = "UserSpaceSettings", action = "EditUserProfile" } // Parameter defaults ); context.MapRoute( "UserSpace_Settings_ManageApplications", // Route name "u/{SpaceKey}/Settings/ManageApplications" + extensionForOldIIS, // URL with parameters new { controller = "UserSpaceSettings", action = "ManageApplications" } // Parameter defaults ); context.MapRoute( "UserSpace_Settings_Common", // Route name "u/{SpaceKey}/Settings/{action}" + extensionForOldIIS, // URL with parameters new { controller = "UserSpaceSettings", action = "EditUserProfile" } // Parameter defaults ); context.MapRoute( "UserSpace_Honour_PointRecords", // Route name "u/{SpaceKey}/Honour/PointRecords" + extensionForOldIIS, // URL with parameters new { controller = "Honour", action = "ListPointRecords" } // Parameter defaults ); context.MapRoute( "UserSpace_Honour_PointRule", // Route name "u/{SpaceKey}/Honour/MyRank" + extensionForOldIIS, // URL with parameters new { controller = "Honour", action = "MyRank" } // Parameter defaults ); context.MapRoute( "UserSpace_Honour_Common", // Route name "u/{SpaceKey}/Honour/{action}" + extensionForOldIIS, // URL with parameters new { controller = "Honour", action = "MyRank" } // Parameter defaults ); context.MapRoute( "UserSpace_Common", // Route name "u/common/{spaceKey}/{action}" + extensionForOldIIS, // URL with parameters new { controller = "UserSpace" } // Parameter defaults ); #endregion UserSpace #region ControlPanel context.MapRoute( "ControlPanel_Home", // Route name "ControlPanel/Home" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanel", action = "Home", CurrentNavigationId = "20000000" } // Parameter defaults ); #region 运营 context.MapRoute( "ControlPanel_Operation_Home", // Route name "ControlPanel/Operation" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "Home", CurrentNavigationId = "20000030" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_ManageRecommendItems", // Route name "ControlPanel/Operation/ManageRecommendItems" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManageRecommendItems", CurrentNavigationId = "20000032" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_ManageRecommendUsers", // Route name "ControlPanel/Operation/ManageRecommendUsers" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManageRecommendUsers", CurrentNavigationId = "20000033" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_ManageLinks", // Route name "ControlPanel/Operation/ManageLinks" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManageLinks", CurrentNavigationId = "20000034" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_ManageAdvertisings", // Route name "ControlPanel/Operation/ManageAdvertisings" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManageAdvertisings", CurrentNavigationId = "20000035" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_ManageAnnouncements", // Route name "ControlPanel/Operation/ManageAnnouncements" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManageAnnouncements", CurrentNavigationId = "20000036" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_ManageAccountTypes", // Route name "ControlPanel/Operation/ManageAccountTypes" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManageAccountTypes", CurrentNavigationId = "20000037" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_ManagePointRecords", // Route name "ControlPanel/Operation/ManagePointRecords" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManagePointRecords", CurrentNavigationId = "20000038" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_ManageSearchedTerms", // Route name "ControlPanel/Operation/ManageSearchedTerms" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManageSearchedTerms", CurrentNavigationId = "20000039" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_ManageImpeachReports", // Route name "ControlPanel/Operation/ManageImpeachReports" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManageImpeachReports", CurrentNavigationId = "20000040" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_ManageOperationLogs", // Route name "ControlPanel/Operation/ManageOperationLogs" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManageOperationLogs", CurrentNavigationId = "20000041" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_ManageCustomMessage", // Route name "ControlPanel/Operation/ManageCustomMessage" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManageCustomMessage", CurrentNavigationId = "20000075" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_MassMessages", // Route name "ControlPanel/Operation/MassMessages" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "MassMessages", CurrentNavigationId = "20000076" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_Statistics", // Route name "ControlPanel/Operation/Statistics" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "CNZZStatistics", CurrentNavigationId = "20000077" } // Parameter defaults ); context.MapRoute( "ControlPanel_Operation_Common", // Route name "ControlPanel/Operation/{action}" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelOperation", action = "ManagePointRecords" } // Parameter defaults ); #endregion #region 内容 context.MapRoute( "ControlPanel_Content_Home", // Route name "ControlPanel/Content" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelContent", action = "Home", CurrentNavigationId = "20000010" } // Parameter defaults ); context.MapRoute( "ControlPanel_Content_ManageTags", // Route name "ControlPanel/Content/ManageTags" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelContent", action = "ManageTags", CurrentNavigationId = "20000014" } // Parameter defaults ); context.MapRoute( "ControlPanel_Content_ManageSiteCategories", // Route name "ControlPanel/Content/ManageSiteCategories" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelContent", action = "ManageSiteCategories", CurrentNavigationId = "20000015" } // Parameter defaults ); context.MapRoute( "ControlPanel_Content_ManageUserCategories", // Route name "ControlPanel/Content/ManageUserCategories" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelContent", action = "ManageUserCategories", CurrentNavigationId = "20000016" } // Parameter defaults ); context.MapRoute( "ControlPanel_Content_ManageComments", // Route name "ControlPanel/Content/ManageComments" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelContent", action = "ManageComments", CurrentNavigationId = "20000017" } // Parameter defaults ); context.MapRoute( "ControlPanel_Content_Common", // Route name "ControlPanel/Content/{action}" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelContent" } // Parameter defaults ); #endregion #region 用户 context.MapRoute( "ControlPanel_User_Home", // Route name "ControlPanel/Users" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelUser", action = "Home", CurrentNavigationId = "20000020" } // Parameter defaults ); context.MapRoute( "ControlPanel_User_ManageUser", // Route name "ControlPanel/User/ManageUser" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelUser", action = "ManageUsers", CurrentNavigationId = "20000022" } // Parameter defaults ); context.MapRoute( "ControlPanel_User_ManageUserRoles", // Route name "ControlPanel/User/ManageUserRoles" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelUser", action = "ManageUserRoles", CurrentNavigationId = "20000023" } // Parameter defaults ); context.MapRoute( "ControlPanel_User_ManageRanks", // Route name "ControlPanel/User/ManageRanks" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelUser", action = "ManageRanks", CurrentNavigationId = "20000024" } // Parameter defaults ); context.MapRoute( "ControlPanel_User_ManageIdentifications", // Route name "ControlPanel/User/ManageIdentifications" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelUser", action = "ManageIdentifications", CurrentNavigationId = "20000025" } // Parameter defaults ); context.MapRoute( "ControlPanel_User_Common", // Route name "ControlPanel/User/{action}" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelUser", action = "ManageUsers" } // Parameter defaults ); #endregion #region 工具 context.MapRoute( "ControlPanel_Tool_Home", // Route name "ControlPanel/Tool" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelTool", action = "Home", CurrentNavigationId = "20000042" } // Parameter defaults ); context.MapRoute( "ControlPanel_Tool_ManageTask", // Route name "ControlPanel/Tool/ManageTasks" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelTool", action = "ManageTasks", CurrentNavigationId = "20000046" } // Parameter defaults ); context.MapRoute( "ControlPanel_Tool_UnloadAppDomain", // Route name "ControlPanel/Tool/UnloadAppDomain" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelTool", action = "UnloadAppDomain", CurrentNavigationId = "20000047" } // Parameter defaults ); context.MapRoute( "ControlPanel_Tool_ManageIndex", // Route name "ControlPanel/Tool/ManageIndex" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelTool", action = "ManageIndex", CurrentNavigationId = "20000044" } // Parameter defaults ); context.MapRoute( "ControlPanel_Tool_ResetCache", // Route name "ControlPanel/Tool/ResetCache" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelTool", action = "ResetCache", CurrentNavigationId = "20000045" } // Parameter defaults ); context.MapRoute( "ControlPanel_Tool_RebuildingThumbnails", // Route name "ControlPanel/Tool/RebuildingThumbnails" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelTool", action = "RebuildingThumbnails", CurrentNavigationId = "20000048" } // Parameter defaults ); context.MapRoute( "ControlPanel_Tool_Common", // Route name "ControlPanel/Tool/{action}" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelTool" } // Parameter defaults ); #endregion #region 设置 context.MapRoute( "ControlPanel_Settings_Home", // Route name "ControlPanel/Settings" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "SiteSettings", CurrentNavigationId = "20000050" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManagePointItems", // Route name "ControlPanel/Settings/ManagePointItems" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManagePointItems", CurrentNavigationId = "20000052" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManagePermissionItems", // Route name "ControlPanel/Settings/ManagePermissionItems" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManagePermissionItems", CurrentNavigationId = "20000053" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManagePrivacyItems", // Route name "ControlPanel/Settings/ManagePrivacyItems" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManagePrivacyItems", CurrentNavigationId = "20000054" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManageAuditItems", // Route name "ControlPanel/Settings/ManageAuditItems" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManageAuditItems", CurrentNavigationId = "20000055" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_SiteSettings", // Route name "ControlPanel/Settings/SiteSettings" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "SiteSettings", CurrentNavigationId = "20000057" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_UserSettings", // Route name "ControlPanel/Settings/UserSettings" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "UserSettings", CurrentNavigationId = "20000058" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_AttachmentSettings", // Route name "ControlPanel/Settings/AttachmentSettings" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "AttachmentSettings", CurrentNavigationId = "20000059" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManageEmails", // Route name "ControlPanel/Settings/ManageEmails" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ListOutbox", CurrentNavigationId = "20000060" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManageEmailOtherSettings", // Route name "ControlPanel/Settings/ManageEmailOtherSettings" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManageEmailOtherSettings", CurrentNavigationId = "20000060" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_MessagesSettings", // Route name "ControlPanel/Settings/MessagesSettings" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "MessagesSettings", CurrentNavigationId = "20000061" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ReminderSettings", // Route name "ControlPanel/Settings/ReminderSettings" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ReminderSettings", CurrentNavigationId = "20000062" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_PauseSiteSettings", // Route name "ControlPanel/Settings/PauseSiteSettings" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "PauseSiteSettings", CurrentNavigationId = "20000063" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManageApplications", // Route name "ControlPanel/Settings/ManageApplications" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManageApplications", CurrentNavigationId = "20000065" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManageNavigations", // Route name "ControlPanel/Settings/ManageNavigations" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManageNavigations", CurrentNavigationId = "20000066" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManageThemes", // Route name "ControlPanel/Settings/ManageThemes" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManageThemes", CurrentNavigationId = "20000067" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManageAreas", // Route name "ControlPanel/Settings/ManageAreas" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManageAreas", CurrentNavigationId = "20000071" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManageSchools", // Route name "ControlPanel/Settings/ManageSchools" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManageSchools", CurrentNavigationId = "20000072" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManageEmotionCategories", // Route name "ControlPanel/Settings/ManageEmotionCategories" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManageEmotionCategories", CurrentNavigationId = "20000073" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_ManageSensitiveWords", // Route name "ControlPanel/Settings/ManageSensitiveWords" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManageSensitiveWords", CurrentNavigationId = "20000074" } // Parameter defaults ); context.MapRoute( "ControlPanel_Settings_Common", // Route name "ControlPanel/Settings/{action}" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanelSettings", action = "ManagePointItems", CurrentNavigationId = "20000050" } // Parameter defaults ); #endregion context.MapRoute( "ControlPanel_Common", // Route name "ControlPanel/{action}" + extensionForOldIIS, // URL with parameters new { controller = "ControlPanel", action = "Home" } // Parameter defaults ); #endregion ControlPanel #region Handler context.Routes.MapHttpHandler <CaptchaHttpHandler>("Captcha", "Handlers/CaptchaImage.ashx"); context.Routes.MapHttpHandler <AttachmentAuthorizeHandler>("AttachmentAuthorize", "Handlers/AttachmentAuthorize.ashx"); context.Routes.MapHttpHandler <AttachmentDownloadHandler>("Attachment", "Handlers/Attachment.ashx"); context.Routes.MapHttpHandler <CustomStyleHandler>("CustomStyle", "Handlers/CustomStyle.ashx"); //context.Routes.MapHttpHandler<UserAvatarHandler>("UserAvatar", "Handlers/UserAvatar.ashx"); //context.Routes.MapHttpHandler<ImageHandler>("Image", "Handlers/Image.ashx"); //context.Routes.MapHttpHandler<LogoHandler>("Logo", "Handlers/Logo.ashx"); #endregion Handler }
/// <summary> /// 加载Invitation模板 /// </summary> private static Dictionary <string, InvitationTemplate> LoadInvitationTemplates() { Dictionary <string, InvitationTemplate> InvitationTemplates; //回复:已修改 //mazq回复:不应该用DefaultLanguage吧 //回复:那先不修改了 ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); string language = siteSettings.DefaultLanguage; string cacheKey = "InvitationTemplates::" + language; ICacheService cacheService = DIContainer.Resolve <ICacheService>(); InvitationTemplates = cacheService.Get <Dictionary <string, InvitationTemplate> >(cacheKey); if (InvitationTemplates == null) { InvitationTemplates = new Dictionary <string, InvitationTemplate>(); // Read in the file List <string> fileNames = new List <string>(); //平台级请求模板 string commonFileName = WebUtility.GetPhysicalFilePath(string.Format("~/Languages/" + language + "/InvitationTemplates.xml")); if (File.Exists(commonFileName)) { fileNames.Add(commonFileName); } //应用级请求模板 string applicationsRootDirectory = WebUtility.GetPhysicalFilePath("~/Applications/"); foreach (var applicationPath in Directory.GetDirectories(applicationsRootDirectory)) { string applicationInvitationTemplateFileName = Path.Combine(applicationPath, "Languages\\" + language + "\\InvitationTemplates.xml"); if (!File.Exists(applicationInvitationTemplateFileName)) { continue; } fileNames.Add(applicationInvitationTemplateFileName); } dynamic dModel = new ExpandoObject(); Type modelType = ((object)dModel).GetType(); foreach (string fileName in fileNames) { XmlDocument doc = new XmlDocument(); doc.Load(fileName); string typeKey; foreach (XmlNode node in doc.GetElementsByTagName("invitation")) { XmlNode attrNode = node.Attributes.GetNamedItem("invitationTypeKey"); if (attrNode == null) { continue; } typeKey = attrNode.InnerText; InvitationTemplate invitationTemplate = new InvitationTemplate(node); InvitationTemplates[typeKey] = invitationTemplate; //编译模板 Razor.Compile(invitationTemplate.UnhandledBody, modelType, typeKey); } } cacheService.Add(cacheKey, InvitationTemplates, CachingExpirationType.Stable); } return(InvitationTemplates); }
public ContentResult Rss(string spaceKey) { User user = userService.GetFullUser(spaceKey); if (user == null) { return(Content(string.Empty)); } ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SyndicationFeed feed = new SyndicationFeed(user.DisplayName + "的日志 - " + siteSettingsManager.Get().SiteName, string.Empty, new Uri(SiteUrls.FullUrl(SiteUrls.Instance().Blog(spaceKey)))); feed.Authors.Add(new SyndicationPerson(user.DisplayName)); feed.LastUpdatedTime = DateTime.Now.ConvertToUserDate(); List <SyndicationItem> items = new List <SyndicationItem>(); IEnumerable <BlogThread> blogs = blogService.GetOwnerThreads(TenantTypeIds.Instance().User(), user.UserId, false, true, null, null, false, blogSettings.RssPageSize, 1); foreach (BlogThread blog in blogs) { string url = SiteUrls.FullUrl(SiteUrls.Instance().BlogDetail(spaceKey, blog.ThreadId)); string content = string.Empty; if (blogSettings.ShowSummaryInRss) { if (!string.IsNullOrEmpty(blog.Summary)) { content = blog.Summary + "......<a href='" + url + "'>>>点击查看日志原文</a>"; } } else { content = blog.GetResolvedBody(); } SyndicationItem item = new SyndicationItem(blog.ResolvedSubject, content, new Uri(url), blog.ThreadId.ToString(), blog.DateCreated.ConvertToUserDate()); //item.BaseUri =new Uri(WebUtility.HostPath(Request.Url)); item.Authors.Add(new SyndicationPerson(blog.Author)); IEnumerable <string> ownerCategoryNames = blog.OwnerCategoryNames; if (ownerCategoryNames != null) { foreach (string ownerCategoryName in ownerCategoryNames) { item.Categories.Add(new SyndicationCategory(ownerCategoryName)); } } item.PublishDate = blog.DateCreated.ConvertToUserDate(); items.Add(item); } feed.Items = items; //输出XML string rss = string.Empty; using (MemoryStream stream = new MemoryStream()) { XmlWriter rssWriter = new XmlTextWriter(stream, System.Text.Encoding.UTF8); Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(feed); rssFormatter.WriteTo(rssWriter); rssWriter.Close(); rss = Encoding.UTF8.GetString(stream.ToArray()); } return(Content(rss, "text/xml")); }
/// <summary> /// 是否具有创建BarPost的权限 /// </summary> /// <param name="sectionId">所属帖吧Id</param> /// <returns></returns> public static bool BarPost_Create(this Authorizer authorizer, long sectionId, out string errorMessage) { IUser currentUser = UserContext.CurrentUser; errorMessage = "没有权限回帖"; BarSectionService barSectionService = new BarSectionService(); var barSection = barSectionService.Get(sectionId); if (barSection == null) { return(false); } if (barSection.AuditStatus != AuditStatus.Success) { errorMessage = "由于贴吧未经过审核,所以不允许发帖"; return(false); } if (!authorizer.AuthorizationService.Check(currentUser, PermissionItemKeys.Instance().Bar_CreatePost())) { if (currentUser != null && currentUser.IsModerated) { errorMessage = Resources.Resource.Description_ModeratedUser_CreateBarPostDenied; } return(false); } if (barSection.TenantTypeId == TenantTypeIds.Instance().Bar()) { //检查是否需要是关注用户才能发帖 IBarSettingsManager barSettingsManager = DIContainer.Resolve <IBarSettingsManager>(); BarSettings barSetting = barSettingsManager.Get(); if (barSetting.OnlyFollowerCreatePost) { if (currentUser == null) { errorMessage = "您需要先登录并关注此帖吧,才能回帖"; return(false); } SubscribeService subscribeService = new SubscribeService(TenantTypeIds.Instance().BarSection()); bool isSubscribed = subscribeService.IsSubscribed(sectionId, currentUser.UserId); if (!isSubscribed) { errorMessage = "您需要先关注此帖吧,才能回帖"; } return(isSubscribed); } } else { if (authorizer.BarSection_Manage(barSection)) { return(true); } bool isTenantMember = authorizer.AuthorizationService.IsTenantMember(currentUser, barSection.TenantTypeId, barSection.SectionId); if (!isTenantMember) { errorMessage = "您需要先加入,才能回帖"; } return(isTenantMember); } //站点设置是否启用了匿名发帖 ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); if (siteSettings.EnableAnonymousPosting) { return(true); } if (currentUser == null) { errorMessage = "您必须先登录,才能回帖"; return(false); } return(true); }