Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        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;
                }
            }
        }
Example #4
0
        /// <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());
        }
Example #6
0
        /// <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);
        }
Example #7
0
        /// <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);
        }
Example #8
0
        /// <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));
        }
Example #9
0
        /// <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());
            }
        }
Example #10
0
        /// <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)
            });
        }
Example #11
0
        /// <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);
        }
Example #12
0
        /// <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);
        }
Example #13
0
        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;
        }
Example #14
0
        /// <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)
            });
        }
Example #15
0
        /// <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
        }
Example #16
0
        /// <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);
        }
Example #17
0
        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"));
        }
Example #18
0
        /// <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);
        }