ABP源碼分析三十三:ABP.Web


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信息。

 

返回ABP源碼分析系列文章目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM