ShenNius.Common项目中主要定义功能性的辅助函数类及通用类,供MVC模式、前后端分离模式下的后台服务使用,以提高编程效率。
ApiResult文件内的ApiResult和ApiResult类定义了通用的数据返回格式,包括状态码、返回消息、返回数据等,主要在前后端分离模式下、ShenNius.Admin.API项目的控制器类中作为返回值使用。
EnumExtension扩展类定义枚举类的通用扩展函数以获取枚举字段的值或者文本,主要用在ShenNius.Infrastructure、ShenNius.Domain及ShenNius.Admin.Mvc项目内。
SwaggerExtension扩展类定义扩展函数注册Swagger服务(AddSwaggerSetup)、配置Swagger请求(UseSwaggerMiddle),同时为保障安全调用,还在AddSwaggerSetup函数内设置了基于JWT的安全认证。SwaggerExtension扩展类主要在ShenNius.Admin.API项目的ShenniusAdminApiModule中调用,当身份认证方式为jwt时,则注册并使用Swagger服务。
Helper文件夹内均为功能性辅助类,主要包括:
1)EmailHelper:该类调用MailKit包发送邮件,暂时没找到使用该类的项目;
2)IpParseHelper:该类支持调用System.Net.NetworkInformation命名空间的相关类获取本地mac地址,同时支持向参考文献2发送请求查询IP所在地。该类主要用在ShenNius.Infrastructure、ShenNius.Common、ShenNius.Domain项目中,用于根据用户IP获取用户所在地;
3)LogHelper:该类主要调用NLog记录操作日志及错误日志;
4)Md5Crypt:该类用于计算md5值,主要用于计算用户密码的md5,用户表中没有明文存储密码,而是保存的md5值,用户登录、修改密码时比较的也是密码的md5值;
5)MyHttpContext:全局保存项目启动时的IServiceProvider实例,用于在项目各处获取HttpContext,该类是在ShenNius.Admin.API项目的ShenniusAdminApiModule.OnConfigureServices函数中初始化的;
6)NPOIHelper:该类调用Magicodes.IE.Excel包生成excel模版文件,并能从excel文件中读取并生成实体类对象集合。ShenNius.Admin.API项目的ApiTenantBaseController、KeywordController使用该类;
7)RSACrypt:该类调用XC.RSAUtil包生成RSA密钥对、加密/解密字符串。MVC模式及前后端分离模式下的用户登录时首先获取RSA密钥,然后在客户端将用户密码加密后传递到服务端,在通过本类解密后使用;
8)SysCacheKey:该类主要存储固定字符串,具体用处请下载项目中通过查找所有引用查看,用的地方不少;
9)WebHelper:该类用于移除文本字符的a标签、移除字符文本Img里面Alt关键字包裹的内容,主要在ShenNius.Admin.API项目的KeywordController.ContentReplace函数内使用。
参考文献:
[1]https://gitee.com/shenniu_code_group/shen-nius.-modularity
[2]http://whois.pconline.com.cn/ipJson.jsp