CS2007 启动过程 (一)

web.config:
    <httpModules>
      <add name="CommunityServer" type="CommunityServer.CSHttpModule, CommunityServer.Components" />
    </httpModules>

CSHttpModule.cs:
    register event handlers
    
    CSHttpModule.Application_BeginRequest:
        make url valid (modify <,>,",\ to %3c, %3e, %22, %27), and redirect
        get CSConfiguration
        
        CSConfiguration.GetConfig:
        try get from cache
        if not get:
            load XmlDocument from communityserver.config
            if communityserver_override.config exists merge first.
                new CSConfiguration(XmlDocument):
                    LoadValuesFromConfigurationXml:
                        load CommunityServer\Core attributes
                        load providers: //Telligent.Components.Provider: Name, Type, Attributes, ExtensionType
                            CommonDataProvider
                            ForumDataProvider
                            WeblogDataProvider
                            GalleryDataProvider
                            ProviderHelper
                            SiteUrlsDataProvider
                            ApplicationKeyProvider
                            EmailTemplateProvider
                            EmailQueueProvider
                            CommonEmailsProvider
                            WeblogEmailsProvider
                            GalleryEmailsProvider
                            FilesEmailsProvider
                            ForumEmailsProvider
                            SearchProvider
                            FileGalleryDataProvider
                            FeedReaderDataProvider
                            RollerBlogsDataProvider
                            MemberRoleProfileProvider
                        load appLocation: //AppLocation : Get ApplicationType(forum, blog, file,...)from url
                            BlogPublic
                            Forums
                            GalleryPublic
                            Admin
                            FileGallery
                            FeedReader
                            BlogRoller
                            Installer
                        load extensionModules: //extensionModules here is a Telligent.Components.Provider, too
                            PassportAuthentication : Security
                            WindowsAuthentication : Security
                            FormsAuthentication : Security
                            CustomAuthentication : Security
                            EncryptionProvider : Encryption
                        load roleConfiguration:
                            currently not aviable from communityserver.config, so will create a default RolesConfiguration
                            this should be a custom string to replace built in role title "EveryOne", "Registered Users"...
                        load fielterLanguages: //every section has a language, user can hide sections in language that he dont want to see, this is for all languages aviable
                            ...
                        load edtiors:
                            PlainText
                            Standard
                            Enhanced
                        if no AppLocation or RolesConfiguration, create default ones
        if config.AppLocation.CurrentApplicationType == ApplicationType.Installer return
        check WWWStatus
            if not valid SEO friendly redirect with 301 result
        check SSL
        create CSContext and Save it

posted on   deerchao  阅读(561)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
< 2007年4月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12

统计

点击右上角即可分享
微信分享提示