ABP.Web模塊並不復雜,主要完成ABP系統的初始化和一些基礎功能的實現。
AbpWebApplication : 繼承自ASP.Net的HttpApplication類,主要完成下面三件事
一,在Application_Start完成AbpBootstrapper的初始化。整個ABP系統的初始化就是通過AbpBootstrapper完成初始化的。
二,在Application_BeginRequest設置根據request或cookie中的Culture信息,完成當前工作線程的CurrentCulture和CurrentUICulture的設置。
三,在Application_AuthenticateRequest設置TenantId到claimsIdentity的Claim中。
AbpWebModuleConfiguration/IAbpWebModuleConfiguration: 定義了一個SendAllExceptionsToClients配置項
AbpWebModule: 繼承自AbpModule,完成Abp.Web模塊的初始化。初始化主要干兩件事:
第一,Register Assembly by convention,這是所有模塊都要在初始化完成的動作。
第二,將資源文件中的本地化數據添加到底層框架中的LocalizationManager維護的一個ILocalizationSource對象的字典中。
WebAssemblyFinder : 實現了IAssemblyFinder的GetAllAssemblies方法,用於獲取當前web項目所引用的非原生的assembly。
WebAuditInfoProvider: 實現了底層框架中的IAuditInfoProvider接口。主要提供BrowserInfo,ClientIpAddress和ClientName。這三個信息來自HttpContext。
IFeaturesScriptManager/FeaturesScriptManager:用於返回一段javascript代碼,該代碼中的abp.features包含了當前訪問用戶的Tenant的所有Feature信息。
IAuthorizationScriptManager/AuthorizationScriptManager :用於返回一段javascript代碼,該代碼中的abp.auth包含了當前訪問用戶的所有Permission信息。
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信息。