NBearV3教程——实体配置文件加密篇

版本

1.0 [2006-11-18]

简介

本教程介绍NBearV3中的实体配置文件的加密支持。

目标

通过本教程,读者应能够全面掌握加密实体配置文件和如何结合使用ASP.NET的配置节加密功能,实现部署环境关联的实体配置加密。

代码

本教程不包含任何演示代码。

时间

<10分钟。

正文

1 配置及启用实体配置文件加密

要启用实体配置文件加密,需要如下设置entityConfig配置节:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 
<configSections>
    
<section name="entityConfig" type="NBear.Common.EntityConfigurationSection, NBear.Common" />
 
</configSections>
 
<entityConfig encrpyt="false" key="aslkjkljlsajsuaggasfklrjuisdhaie">
    
<includes>
      
<add key="Sample" value="C:\Teddy\NBearV3\src\NBear.Test.CaseTests\EntityConfig.xml" />
    
</includes>
 
</entityConfig>
 
<connectionStrings>
    
<add name="CaseTests" connectionString="Server=(local);Database=CaseTests;Uid=sa;Pwd=sa" providerName="NBear.Data.SqlServer.SqlDbProvider"/>
 
</connectionStrings>
</configuration>

注意以上代码中,entityConfig配置节加粗的两个属性:encryptkey

encrypt=true代表,启用实体配置文件加密。

key则指定了一个用于加密/解密实体配置文件的key

如果启用了实体配置文件加密功能,则当前应用程序,将只能识别经过加密的实体配置文件。

2加密/解密实体配置文件

要加密/解密实体配置文件,需要使用dist目录中的NBear.Tools.ConfigurationEncrypter.exe工具。这是一个Windows Form程序,它的使用非常简单,就是载入一个配置文件,指定加密key,并加密/解密这个配置文件。

3 使用ASP.NET的配置节加密工具实现部署环境关联的配置节加密

ASP.NET提供了config文件的加密功能,例如,使用下面的命令行语句可以将IIS中的指定应用程序的Web.configentityConfig配置节加密:

aspnet_regiis -pe "entityConfig" -app "/应用程序的名字"

下面的语句则是对应的解密命令:

aspnet_regiis –pd "entityConfig" -app "/应用程序的名字"

1:您可以在命令行环境执行aspnet_regiis /help查看aspnet_regiis的更多选项。aspnet_regiis.exe工具一般在[windir]\ Microsoft.NET\Framework\v2.0.50727\目录下。

2:您可能需要将dist\NBear.Common.dll文件复制到aspnet_regiis.exe所在的目录,否则,加密/解密配置节的过程中可能会报不能加载NBear.Common.dll错误。

您可能会问,使用如上命令加密Web应用程序的配置文件有什么作用呢?

一旦使用aspnet_regiis加密配置节,则该配置文件中被加密的配置节的内容会使用加密后的数据代替,这些加密数据,只在执行aspnet_regiis的这台服务器上能够被识别。也就是说,即使完整复制该应用程序到另一台服务器,也不能运行该程序,因为配置文件将不能正确识别。aspnet_regiis同时包含了更多其它加密选项,可以更灵活的控制配置节的加密过程。不过,这就是 ASP.NETSDK文档讨论的范畴了,这里仅仅给出常用的方法,不做更多讨论。

//正文结束

//本文结束

posted @   Teddy's Knowledge Base  Views(9449)  Comments(1Edit  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示