ABP.Web模塊並不複雜,主要完成ABP系統的初始化和一些基礎功能的實現。javascript
AbpWebApplication : 繼承自ASP.Net的HttpApplication類,主要完成下面三件事
一,在Application_Start完成AbpBootstrapper的初始化。整個ABP系統的初始化就是經過AbpBootstrapper完成初始化的。
二,在Application_BeginRequest設置根據request或cookie中的Culture信息,完成當前工做線程的CurrentCulture和CurrentUICulture的設置。
三,在Application_AuthenticateRequest設置TenantId到claimsIdentity的Claim中。html
AbpWebModuleConfiguration/IAbpWebModuleConfiguration: 定義了一個SendAllExceptionsToClients配置項java
AbpWebModule: 繼承自AbpModule,完成Abp.Web模塊的初始化。初始化主要幹兩件事:web
第一,Register Assembly by convention,這是全部模塊都要在初始化完成的動做。ajax
第二,將資源文件中的本地化數據添加到底層框架中的LocalizationManager維護的一個ILocalizationSource對象的字典中。cookie
WebAssemblyFinder : 實現了IAssemblyFinder的GetAllAssemblies方法,用於獲取當前web項目所引用的非原生的assembly。session
WebAuditInfoProvider: 實現了底層框架中的IAuditInfoProvider接口。主要提供BrowserInfo,ClientIpAddress和ClientName。這三個信息來自HttpContext。app
IFeaturesScriptManager/FeaturesScriptManager:用於返回一段javascript代碼,該代碼中的abp.features包含了當前訪問用戶的Tenant的全部Feature信息。框架
IAuthorizationScriptManager/AuthorizationScriptManager :用於返回一段javascript代碼,該代碼中的abp.auth包含了當前訪問用戶的全部Permission信息。ide
IMultiTenancyScriptManager/MultiTenancyScriptManager : 用於返回一段javascript代碼,該代碼中的abp.multiTenancy包含了當前MultiTenancy的配置信息。
INavigationScriptManager/NavigationScriptManager : 用於返回一段javascript代碼,該代碼中的abp.nav包含了當前訪問用戶的全部Navigation信息。
ISessionScriptManager/SessionScriptManager : 用於返回一段javascript代碼,該代碼中的abp.session包含了當前訪問用戶的全部session信息(userId,tenantId,impersonatorUserId,impersonatorTenantId,multiTenancySide)。
ISettingScriptManager/SettingScriptManager : 用於返回一段javascript代碼,該代碼中的abp.setting包含了當前訪問用戶的全部setting信息
ErrorInfo:用於封裝error的信息
ValidationErrorInfo:用於封裝Validation Error的信息
IExceptionToErrorInfoConverter/DefaultErrorInfoConverter : 該接口和其默認的實現用於將CLR的exception轉換爲ABP中的ErrorInfo。
IErrorInfoBuilder/ErrorInfoBuilder : 該接口和其實現經過調用IExceptionToErrorInfoConverter對象將將CLR的exception轉換爲ABP中的ErrorInfo。
AjaxResponse /AjaxResponse<object>: 用於封裝針對ajax requests的Response信息。