我可以使用自定义保护提供程序加密web.config,该提供程序的程序集不在GAC中吗?

Jam*_*mes 8 .net asp.net security encryption web-config

我为web.config编写了一个自定义保护配置提供程序.

当我尝试使用它加密我的web.config时,我从aspnet_iisreg收到以下错误

aspnet_regiis.exe -pef appSettings.-prov CustomProvider(这在我的MSBuild中运行)

无法加载文件或程序集"MyCustomProviderNamespace"或其依赖项之一.该系统找不到指定的文件.

在使用Fusion日志检查后,我确认它正在检查GAC和'C:/WINNT/Microsoft.NET/Framework/v2.0.50727/'(aspnet_iisreg的位置).但它无法找到提供者.

我不想将我的组件移动到GAC中,我想将自定义程序集留在我的ApplicationBase中,以便复制到各种服务器,而无需从GAC拉/推.

这是我在web.config中的提供程序配置.

<configProtectedData>
  <providers>
    <add name="CustomProvider"
         type="MyCustomProviderNamespace.MyCustomProviderClass,
         MyCustomProviderNamespace" />
  </providers>
</configProtectedData>
Run Code Online (Sandbox Code Playgroud)

我希望aspnet_iisreg检查我的ApplicationBase Bin文件夹中的这个程序集.有没有人有任何想法?

Jam*_*mes 5

有点脏,我最终做的是将加密的DLL添加到构建机器的GAC.这加密配置好了.

在部署解决方案时,我将Dll复制到ApplicationBase中,应用程序能够成功解密它.