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

Web.Config:

<?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>

在try 加密之前,配置处理程序工作得很好.当我try 用以下方式对其进行加密时:

aspnet_regiis-pef"MyCustomSection"

我收到一个错误:

加密配置部分...一

我已在配置/未配置提供程序的情况下try .带/不带节组.事先/在没有启动网站的情况下.我已经try 将我的程序集暂时放在GAC中进行注册.我也try 了我的log4net部分,只是想try 一些不属于我的东西,但没有运气.我已以管理员身份运行命令提示符.有什么主意吗?或者ASPNet_RegIIS只是不能用于自定义部分吗?

查看MSDN之后的最后一次try 是将我的处理程序更改为从ConfigurationSection继承,而不是实现IConfigurationSectionHandler,因为它在2.0中在技术上已被弃用(希望它与aspnet_regiis版本有关).那里也不走运.

任何 idea 都让我知道.谢谢

推荐答案

aspnet_regiis必须能够绑定组件.正常.net绑定规则适用.

我通过在与aspnet_regiis.exe相同的目录中创建名为aspnet_regiis_bin的目录,并创建一个aspnet_regiis.exe.config文件,其中aspnet_regiis_bin作为私有路径来解决这个问题,如下所示:

<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相关问答推荐

Reaction-Native SignalR连接在调试模式下工作,在释放模式下失败

如何使多行的 TextBox 控件无法调整大小?

SignalR 不在服务器上使用 Session

ASP.NET Web 应用程序 (.NET Framework) 与 ASP.NET Core Web 应用程序 (.NET Framework) 之间的差异

如何防止 Azure 网站进入Hibernate 状态?

将命令行参数传递给 ASP.NET Core 中的 Startup 类

ASP.NET MVC 中的 ASP.NET AJAX 与 jQuery

防止 asp.net Web 表单中的跨站点请求伪造 (csrf) 攻击

aspx 文件中的 if 语句

Web Api 参数始终为空

如何在 ASP.NET 中仅在调试模式下执行代码

Asp.net 中的下拉列表验证使用必填字段验证器

在 ASP.NET 中使用 Messenger Connect 客户端库时出现 Javascript 错误

如何获取正在访问 ASP.NET 应用程序的当前用户?

如何防止 XXE 攻击(.NET 中的 XmlDocument)

Fiddler 没有从 ASP.NET 网站嗅探 SOAP 流量

global.asax 中的 Application_Error 未捕获 WebAPI 中的错误

Application_Start 和 Application_OnStart 之间的区别

为什么 Controls 集合不提供所有 IEnumerable 方法?

Page.IsPostBack 和 Page.IsCallBack 有什么区别?