gpt4 book ai didi

asp.net - 使用 ASPNet_Regiis 加密自定义配置部分 - 你能做到吗?

转载 作者:行者123 更新时间:2023-12-03 08:54:15 24 4
gpt4 key购买 nike

我有一个带有自定义配置部分的 Web 应用程序。该部分包含我想加密的信息(希望使用 ASPNet_RegIIS 而不是自己做)。

网络配置:

<?xml version="1.0"?>

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<configSections>
<section name="MyCustomSection"
type="MyNamespace.MyCustomSectionHandler, MyAssembly"/>
</configSections>
<configProtectedData>
<providers>
<clear />
<add name="DataProtectionConfigurationProvider"
type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,
processorArchitecture=MSIL"
keyContainerName="MyKeyContainer"
useMachineContainer="true" />
</providers>
</configProtectedData>
<MyCustomSection>
<blah name="blah1">
<blahChild name="blah1Child1" />
</blah>
</MyCustomSection>

配置处理程序在尝试加密之前工作得很好。当我尝试使用以下方法对其进行加密时:

aspnet_regiis -pef "MyCustomSection" c:\inetpub\wwwroot\MyWebsite -prov DataProtectionConfigurationProvider



我收到一个错误:

Encrypting configuration section... An error occurred creating the configuration section handler for MyCustomSection: Could not load file or assembly 'MyAssembly' or one of its dependencies. The system cannot find the file specified. (c:\inetpub\wwwroot\MyWebsite\web.config line 5)



我尝试过配置/不配置提供程序。有/无部分组。有/没有事先启动网站。我已经尝试将我的程序集暂时放在 GAC 中进行注册。我还尝试了我的 log4net 部分,只是为了尝试不属于我的东西,但没有运气。我以管理员身份运行命令提示符。有任何想法吗?或者 ASPNet_RegIIS 不能用于自定义部分?

观看后的最后一张照片 MSDN正在更改我的处理程序以从 ConfigurationSection 继承而不是实现 IConfigurationSectionHandler,因为它在 2.0 中在技术上已被弃用(希望它与 aspnet_regiis 版本有关)。那里也没有运气。

任何想法让我知道。谢谢!

最佳答案

aspnet_regiis必须能够绑定(bind)程序集。正常的 .net 绑定(bind)规则适用。

我通过创建名为 aspnet_regiis_bin 的目录来解决这个问题在与 aspnet_regiis.exe 相同的目录中和 aspnet_regiis.exe.config带有 aspnet_regiis_bin 的文件作为这样的私有(private)路径:

<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="aspnet_regiis_bin"/>
</assemblyBinding>
</runtime>
</configuration>

然后我将定义自定义配置部分的程序集复制到 aspnet_regiis_bin这样 aspnet_regiis可以找到他们。

此过程不要求程序集是强命名的或在 GAC 中,但确实需要在框架目录中搞乱。

关于asp.net - 使用 ASPNet_Regiis 加密自定义配置部分 - 你能做到吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/786661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com