使用spring.net+nibernate时如何用aspnet_regiis加密数据库连接字符串
2023-09-14 09:13:02 时间
使用spring.net+nibernate时数据库连接往往是放在一个 <db:provider ... />字段中的
不能使用aspnet_regiis直接加密
解决办法是引入一个专门负责键值对应的配置节
<section name="databaseSettings" type="System.Configuration.NameValueSectionHandler" />
在这个配置节中声明重要的连接参数
<databaseSettings> <add key="db.datasource" value=".\SQLEXPRESS; Integrated Security=true; AttachDbFilename=|DataDirectory|northwnd.mdf; User Instance=true;"/> <add key="db.user" value="springqa"/> <add key="db.password" value="springqa"/> <add key="db.database" value="Northwind"/> </databaseSettings>
在 Spring.NET 中,通过 PropertyPlaceholderConfigurer 读取配置参数,以便在 Spring.NET 中使用
<!-- Property placeholder configurer for database settings -->
<object type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
<property name="ConfigSections" value="databaseSettings"/>
</object>
最后,把 <db:provider ... />字段中的内容改换成 以通配符的形式声明
<db:provider id="SqlServerDbProvider" provider="System.Data.SqlClient" connectionstring="Data Source=${db.datasource};database=${db.database};uid=${db.user};pwd=${db.password};">
</db:provider>
这样加密的时候只要加密
<databaseSettings> <add key="db.datasource" value=".\SQLEXPRESS; Integrated Security=true; AttachDbFilename=|DataDirectory|northwnd.mdf; User Instance=true;"/> <add key="db.user" value="springqa"/> <add key="db.password" value="springqa"/> <add key="db.database" value="Northwind"/> </databaseSettings>这段就行了,加密后的效果
<databaseSettings configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>PtULk77o93K0Wf66BLm+6ljtChqAha1+fHeVpFboLUBzOGk9256pvpVxyjAbxnxWGBp6s6haCwZS+gofCXfCzycEIxiXCaxTHUhFiUagfutCEHlTg/TwqO0s6B3qvzSZG/rMdAZc4vGt8yOv+XiZHlG/FZoH1LUaZUM+MmRXcoY=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>4F0up6tbkZ1cOxtCuKmLdAtjBFUFLKsGgkzeibWHVdmSgupgfM7cNXHY/c3Emm6z1v99pqJyEMO3DoCfZiEgdka3qldxNwC+KTFfZDvfYiNuHnFIUY3VjuPiWmeQ69DLF5454u3V3GctPYAVmE0lFc+PYYyEH4Tn4YO4VtiwhWkHRFcEvt7mk4Y+4/aw37d8rrJV9Sx6Z1uJ4isKbAy2DXxJ82QRkilMbl/B6r0+1f4xK3OGEkVL8PRL3B/BOGzXOtOwJckxSyKL8LBbmw8P0J+JoTnuwhO50jMjqROOWg2GVFZkTvwMLg==</CipherValue>
</CipherData>
</EncryptedData>
</databaseSettings>
相关文章
- ASP .NET CORE MVC 部署Windows 系统上 IIS具体步骤---.Net Core 部署到 IIS位系统中的步骤
- 使用 Visual Studio 部署 .NET Core 应用 ——.Net Core 部署到SUSE Linux Enterprise Server 12 SP2 64 位(GNOME 版本3.20.2)
- 使用 Visual Studio 部署 .NET Core 应用 ——.Net Core 部署到Ubuntu 16.04
- 【Spring Boot 文档翻译】开始使用 Spring Boot
- 【Spring Boot】Spring Boot之跨域解决方案
- springmvc报错 nested exception is org.mybatis.spring.MyBatisSystemException:
- spring mvc 坑之PUT,DELETE方法接收不到请求参数
- spring: 在Spring应用中使用JDBC(使用profiles选择数据源/使用基于JDBC驱动的数据源)
- Asp.Net Web API 2第十七课——Creating an OData Endpoint in ASP.NET Web API 2(OData终结点)
- [Spring boot] A quick REST API Guide
- spring 学习2-Spring Configuration in detail
- Spring异常解决 java.lang.NullPointerException,配置spring管理hibernate时出错
- 为什么Spring Boot推荐使用logback-spring.xml来替代logback.xml来配置logback日志的问题分析
- 你的NET程序需要保护吗?Agile.net 6.6.X 注入式Crack
- Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis
- 【Spring源码学习】spring IOC容器管理
- 【spring】Spring Data --Spring Data JPA
- Spring循环依赖的三种方式
- Spring Boot 之spring.factories
- spring.factories 的妙用
- Net Core 微服务 - 如何在docker容器里运行一个简单的.net core web api 服务
- 关于ASP.net开启身份验证时集成的托管管道模式下不适用的 ASP.NET 设置