私有部署和全局部署

私有部署和全局部署

强命名程序集私有部署和全局部署都可以,非强命名程序集则只可以私有部署。


非强命名程序集的私有部署(简单拷贝部署)

和应用程序部署在同一个目录下的程序集称作私有部署程序集。私有部署给程序员带来方便。安装(复制),移动,卸载(删除)都很简单。

简单管理控制(配置)

可在应用程序目录下安放一个配置文件,CLR通过解析该文件内容来改变其定位和加载程序集时的策略。如app.exe.config

强命名程序集的私有部署

如果不太可能被共享,强命名程序集应该用私有部署。

强命名程序集的全局部署

如果一个程序集要被多个应用程序访问,那么必须放在一个CLR确知的目录内,这个已知的目录称作全局程序集缓存(GAC),通常在C:/Windows/Assembly/GAC

在开发和测试时,向GAC安装强命名程序集最常用GACUtil.exe

在发布时,因为GACUtil.exe工具没有和面向终端的.NET框架分发包一起发布,所以必须使用2.0版本以上的windows安装器(MSI)

引用强命名程序集

编译时CSC.exe将在以下目录中查找程序集:
1. 当前工作目录
2. 编译器目前使用的CLR所在目录(与GAC中程序集中相同,两份拷贝),MSCorLib.dll总是包含在这目录内。一般在C:/windows/Microsoft.NET/Framework/v1.0.3427
3. 任何用CSC.exe的/lib命令行开关指定的目录。
4. 任何LIB环境变量中指定的目录。

CLR所在目录中的拷贝使得我们能够方便的生成自己的程序集。而GAC中的拷贝用于运行时加载这些程序集文件。

运行时CLR将在以下目录中查找程序集:

1. GAC中定位
2. 应用程序自基目录
3. 配置文件(XXX.exe.config)中标识的私有路径中查找
4. 如果用MSI安装,CLR将要求MSI定位程序集。



对程序集文件的签名过程

生成一个强命名程序集时,该程序集的FileDef清单文件数据表将包含该程序集所有文件的一个列表。每个文件的名称被加入时都被转换成一个散列值,该散列值与文件名一起存入FileDef

在生成有清单的PE文件后,该PE文件整个内容被转换为一个散列值(散列算法:SHA-1),再经由私有密钥签名,生成RSA数字签名存储在PE文件的一个保留区。

最后,PE文件的CLR表头被更新以反映数字签名在文件中的嵌入位置。另外公有密钥(完整的)嵌入PE文件的AssemblyDef文件清单中。

强命名程序集防篡改特性

当程序集被安装到GAC中时,系统将对包含清单的文件内容进行散列转换,然后与嵌入PE文件的RSA数字签名进行比较,若不同,则被篡改。另外系统还会对其他文件的内容进行散列转换,然后与清单文件中FileDef表内存储的散列值进行比较。

另:当强命名程序集是从非GAC的地方加载时,CLR会在程序集被加载时比较散列值,也就是说每次执行都会计算散列值。
### HeyGEM 的私有部署指南 HeyGEM 是一种基于开源技术构建的企业级工具或平台,在进行私有部署时,通常需要完成以下几个方面的配置: #### 1. 配置 OAuth 授权服务 为了实现用户的统一身份认证,可以通过 GitHub 或其他第三方授权服务来管理用户登录。具体操作如下: - 登录目标授权服务平台(如 GitHub),创建一个新的 **OAuth Application**。 - 填写应用名称、主页 URL 回调地址。对于回调地址,需填写实际部署环境中的路径,例如 `http://<your-domain>/heygem/auth/callback`[^1]。 #### 2. 修改核心配置文件 在 HeyGEM 的私有部署过程中,可能涉及多个配置文件的调整。以下是常见的两个场景及其处理方法: ##### (1) 对于基于 `.properties` 文件的配置 如果 HeyGEM 使用的是传统的 Java 属性文件,则可以在 `config.properties` 中添加或更新以下字段: ```properties oauth.github.clientId=<GitHub Client ID> oauth.github.clientSecret=<GitHub Client Secret> auth.callback.url=http://<your-deployment-domain>/heygem/auth/callback ``` 上述参数分别对应 GitHub 应用程序的客户端 ID、密钥以及回调地址。 ##### (2) 对于支持 TOML 格式的配置 类似于 Rust Crates 的私有部署方式,某些版本的 HeyGEM 可能会采用更现代的配置格式——TOML。此时可以编辑位于 `.cargo/config.toml` 路径下的全局配置文件,并加入自定义注册表设置: ```toml [registries] git-baoyachi = { index = "https://git.baoyachi.com/heygem/index" } ``` 此部分主要用于指定内部依赖包索引的位置[^2]。 #### 3. 数据库初始化与迁移 确保数据库已正确安装并运行之后,执行必要的 SQL 初始化脚本或者通过框架自带的数据迁移命令同步结构变更至生产环境中去。这一步骤的具体实施取决于所选用的技术栈。 #### 4. 安全加固措施 最后但同样重要的一环是对整个系统的安全性进行全面审查,包括但不限于启用 HTTPS 加密传输协议;限制 API 访问权限范围;定期轮换敏感凭证等等。 ```bash # 示例:强制开启 SSL/TLS 连接 sudo certbot --nginx -d <your-domain> ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值