.NET 6中如何禁用bypassTrustedAppStrongNames?签名验证问题
在.NET 6中停用完全信任程序集的强名称验证绕过
.NET 6及后续的.NET Core系列运行时不支持.NET Framework中使用的AllowStrongNameBypass注册表项——两者的强名称验证机制架构不同,.NET 6不会读取该注册表配置。要强制验证完全信任程序集的强名称,需使用以下方法:
可用解决方案
1. 设置环境变量
在运行应用前,设置环境变量:
DOTNET_StrongName_VerifyFullyTrusted=1
该环境变量会强制.NET 6运行时验证所有完全信任程序集的强名称,覆盖原本的绕过逻辑。
2. 修改运行时配置文件
在应用的[你的应用名称].runtimeconfig.json文件中,添加对应配置项:
{ "runtimeOptions": { "configProperties": { "System.Security.StrongName.VerifyFullyTrusted": true } } }
保存配置后重启应用即可生效。
验证效果
配置完成后,签名的.NET 6 EXE尝试加载未签名DLL时,会触发强名称验证失败,无法完成加载,符合预期。
内容的提问来源于stack exchange,提问作者Spirit_Life
相关产品推荐
相关产品推荐

