web.config connectionStrings 数据库连接字符串的解释(转)
先来看一下默认的连接SQL Server数据库配置
<connectionStrings> <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> </connectionStrings>
SqlConnectionStringBuilder实例化时需要使用connectionString。如:SqlConnectionStringBuild builder = new SqlConnectionStringBuild(connectionString);
一、Data
Source
SqlConnectionStringBuilder的DataSource属性,对应connectionString中的Data
Source,“Data Source”可以由下列字符串代替:“Server”,“Address”,“Addr”和“Network
Address”。
Data Source=.\SQLExpress也可以写成这样Data
Source=(local)\SQLExpress。
二、Integrated Security
SqlConnectionStringBuilder 的 IntegratedSecurity
属性,对应 connectionString 中的I ntegrated Security,“Integrated
Security”可以写成“trusted_connection”。
为 True 时,使用当前的 Windows 帐户凭据进行身份验证,为 False
时,需要在连接中指定用户 ID 和密码。可识别的值为 True、False、Yes、No 以及与 True 等效的 SSPI。
如果没有些则必须写上
uid=sa;pwd=123 之类的设置“uid”也可使用“User ID”,“pwd”也可换为“PassWord”。
SSPI:Microsoft安全支持提供器接口(SSPI)是定义得较全面的公用API,用来获得验证、信息完整性、信息隐私等集成安全服务,以及用于所有分布式应用程序协议的安全方面的服务。
应用程序协议设计者能够利用该接口获得不同的安全性服务而不必修改协议本身。
三、AttachDBFilename
SqlConnectionStringBuilder 的 AttachDBFilename 属性,对应
connectionString 中的 AttachDBFilename,“AttachDBFilename”可以写成“extended
properties”,“initial file name”。
AttachDbFileName
属性指定连接打开的时候动态附加到服务器上的数据库文件的位置。
这个属性可以接受数据库的完整路径和相对路径(例如使用|DataDirectory|语法),在运行时这个路径会被应用程序的
App_Data 目录所代替。
四、User Instance
SqlConnectionStringBuilder 的 UserInstance 属性,对应
connectionString 中的 User Instance ,该值指示是否将连接从默认的 SQL Server
实例重定向到在调用方帐户之下运行并且在运行时启动的实例。
UserInstance=true 时,SQLServerExpress
为了把数据库附加到新的实例,建立一个新的进程,在打开连接的用户身份下运行。
在 ASP.NET 应用程序中,这个用户是本地的 ASPNET 帐号或默认的
NetworkService,这依赖于操作系统。
为了安全地附加非系统管理员帐号(例如ASP.NET帐号)提供的数据库文件,建立一个独立的
SQLServer 用户实例是必要的。
五、Initial Catalog 等同于 Database。
六、providerName 指定值“System.Data.OracleClient”,该值指定 ASP.NET 在使用此连接字符串进行连接时应使用 ADO.NET System.Data.OracleClient 提供程序。
PS:DataDirectory是什么?
asp.net 2.0有一个特殊目录app_data,通常Sql Server 2005
express数据文件就放在这个目录,相应的数据库连接串就是:connectionString="…… data
source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|data.mdf;User
Instance=true"
这里有一个DataDirectory的宏,它表示什么意义呢?
DataDirectory是表示数据库路径的替换字符串。由于无需对完整路径进行硬编码,DataDirectory
简化了项目的共享和应用程序的部署。例如,无需使用以下连接字符串:"Data Source= c:\program
files\MyApp\app_data\Mydb.mdf"
通过使用|DataDirectory|(包含在如下所示的竖线中),即可具有以下连接字符串:
"Data Source =
|DataDirectory|\Mydb.mdf" 。
不仅仅是Sql server 2005 express中使用,也可以在其它的文件数据库中使用,例如Sqllite数据库文件的连接字符串:
<add name="DefaultDB" connectionString="DriverClass=NHibernate.Driver.SQLite20Driver;Dialect=NHibernate.Dialect.SQLiteDialect;Data Source=|DataDirectory|\data.db3" />
--------------------------------------- 附加一些连接语句例子 ---------------------------------------
<--普通例子1--> <configuration> <connectionStrings> <add name="Sales" providerName="System.Data.SqlClient" connectionString="server=myserver;database=Products;uid=salesUser;pwd=sellMoreProducts" /> <add name="NorthWind" providerName="System.Data.SqlClient" connectionString="server=.;database=NorthWind;Integrated Security=SSPI" /> </connectionStrings> </configuration> <--普通例子2--> <configuration> <connectionStrings> <add name="NorthWind" connectionString="Provider=SQLOLEDB;Integrated Security=SSPI;Initial Catalog=da;Data Source=bar" /> </configuration>
----------------------------------------------------------------------------------------------------------
<connectionStrings> <add name="LocalSqlServer" connectionString="Data Source=.\SQLExpress;Initial Catalog=NorthWind;Integrated Security=SSPI" providerName="System.Data.SqlClient" /> </connectionStrings> <--也可写为--> <connectionStrings> <add name="LocalSqlServer" connectionString="Server=.\SQLExpress;Database=NorthWind;Integrated Security=Yes" providerName="System.Data.SqlClient" /> </connectionStrings>
----------------------------------------------------------------------------------------------------------
<configuration> <connectionStrings> <add name="DB2005_2" providerName="System.Data.SqlClient" connectionString="Data Source=.;Initial Catalog=Northwind;User ID=dbtester;Password=zhi;Trusted_Connection=False;Connect Timeout=30;Min Pool Size=16;Max Pool Size=100"/> <add name="DB2005_1" providerName="System.Data.SqlClient" connectionString="Server=.;Database=Northwind;User ID=dbtester;Password=zhi;Trusted_Connection=False;Connect Timeout=30;Min Pool Size=16;Max Pool Size=100"/> <add name="Northword2000" providerName="System.Data.SqlClient" connectionString="Initial Catalog=Northwind;User ID=dbtester;PassWord=zhi;Persist Security Info=false;Data Source=(local);Connect Timeout=30;Min Pool Size=16;Max Pool Size=100;"/> <add name="SQLExp" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\northwnd1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"/> <add name="Oracle" connectionString="Data Source=TEST;User ID=sa;Password=sa;" providerName="System.Data.OracleClient" /> <add name="oleconn" providerName="System.Data.OleDb" connectionString="Provider=Microsoft.Jet.OleDb.4.0;Data Source=|DataDirectory|northwind.mdb"/> <add name="MySql" providerName="MySql.Data.MySqlClient" connectionString="Server=172.29.131.27;Port=3311;DataBase=comctl;Persist Security Info=False;User ID=root;Password=123456;Allow Zero Datetime=true;" /> </connectionStrings> <system.data> <DbProviderFactories> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.2.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> </DbProviderFactories> </system.data> </configuration>
====================================== 可以保存为(以下转自他处).cs ======================================
using System.Data.SqlClient; using System.Configuration; public class Class1 { public Class1() { //Persist Security Info如果数据库连接成功后不再需要连接的密码,建议False //string sql2000 = "Initial Catalog=Northwind;User ID=dbtester;PassWord=zhi;Persist Security Info=false;Data Source=(local);Connect Timeout=30;Min Pool Size=16;Max Pool Size=100;"; //string sql2000 = "Initial Catalog=Northwind;User ID=sa;PassWord=5;Persist Security Info=false;Data Source=."; //string sql2000 = "Initial Catalog=Northwind;User ID=sa;PassWord=5;Persist Security Info=false;Data Source=newtime"; string source = "server=(local);integrated security=SSPI;database=Northwind"; string expressSource = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\northwnd.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"; //Integrated Security采用windows的集成身份验证,integraged Security=SSPI; //Integrated Security=SSPI 这个表示以当前WINDOWS系统用户身去登录SQL SERVER服务器,如果SQL SERVER服务器不支持这种方式登录时,就会出错 //表示你的连接安全验证方式,可用trusted_connection=yes取代 //Integrated Security 为 True。用户实例仅与集成安全性一起使用,带有用户名和密码的 SQL Server 用户不起作用。 //string source3 = @"Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog= pubs;UserID=sa;Password=asdasd;"; //(DBMSSOCN=TCP/IP instead of Named Pipes, at the end of the Data Source is the port to use (1433 is the default)) //Standard Security: string source4 = "Data Source=Aron1;Initial Catalog= pubs;UserId=sa;Password=asdasd;"; string source5 = "Server=Aron1;Database=pubs;UserID=sa;Password=asdasd;Trusted_Connection=False"; //Trusted_Connection 'false' 当为 false 时,将在连接中指定用户 ID 和密码。当为 true 时,将使用当前的 Windows 帐户凭据进行身份验证。 //可识别的值为 true、false、yes、no 以及与 true 等效的 sspi(强烈推荐)。所以一定要设置Trusted_Connection= false,以防被别人"登录"、"注入语句"等 string source6 = "Data Source=Aron1;Initial Catalog=pubs;Integrated Security=SSPI;"; string source7 = "Server=Aron1;Database=pubs;Trusted_Connection=True;"; //(use serverName\instanceName as Data Source to use an specifik SQLServer instance, only SQLServer2000) //Integrated Security或Trusted_Connection 'false' 当为 false 时, //将在连接中指定用户 ID 和密码。当为 true 时,将使用当前的 Windows 帐户凭据进行身份验证 //VS2003:string connStr=System.Configuration.ConfigurationSettings.AppSettings["SQLCONNECTIONSTRING"];2003中用的 //VS2005:string connStr=System.Configuration.ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ToString();2005-8中用System.Configuration.ConnectionStringSettings i = System.Configuration.ConfigurationManager.ConnectionStrings["Northword2000"]; } }
相关推荐
在.NET框架中,`web.config`文件是ASP.NET应用程序的核心配置文件,用于存储应用程序的配置信息,包括数据库连接字符串。数据库连接字符串是用于指定应用程序如何连接到数据库的关键配置,它包含了一系列参数,如...
在`<connectionStrings>`节内,你可以添加一个或多个连接字符串,每个字符串对应一个数据库。例如,对于SQL Server数据库,一个典型的连接字符串可能如下所示: ```xml connectionString="Data Source=...
ASP.NET Web.config 中数据库连接字符串加密解密 ASP.NET 编程语言中,Web.config 文件是用于存储应用程序配置信息的文件之一。在这个文件中,我们通常会存储数据库连接字符串,但这些字符串中包含敏感信息,如...
在web.config中,<connectionStrings>节是用来定义数据库连接字符串的,这允许开发者配置和管理网站与其数据库之间的连接。 在配置<connectionStrings>节时,可以采用不同的方式,具体取决于数据库的位置(本地或...
首先,数据库连接字符串是用于建立应用程序与数据库之间连接的一段特殊格式的文本,通常包含在Web.Config文件的<connectionStrings>部分。例如: ```xml <connectionStrings> ...
### Web.config中的数据库连接字符串加密方法详解 #### 一、背景介绍 在现代软件开发过程中,安全性变得尤为重要,尤其是在处理敏感信息如数据库连接字符串时。ASP.NET 2.0+ 提供了一种强大的机制来加密`web....
在web.config文件中,连接字符串通常位于<connectionStrings>节点内。加密过程涉及到使用aspnet_regiis工具的命令参数“-pef”或者“-pdf”。其中“-pef”参数用于加密指定的配置部分,而“-pdf”参数用于解密。使用...
本文将深入探讨如何在ASP.NET应用程序中,利用Web.Config文件对数据库连接字符串进行加密与解密的过程。 ### Web.Config 文件的重要性 Web.Config是ASP.NET应用的核心配置文件,它存储了应用程序运行所需的大量...
`web.config`是ASP.NET应用程序的核心配置文件,它包含了诸如应用程序设置、连接字符串、身份验证模式等重要信息。本篇文章将深入探讨如何在`web.config`中配置SQL数据库连接,并解释相关的参数说明。 首先,我们...
### Web.Config中的连接字符串的加密与解密 #### 背景 在现代软件开发过程中,安全性至关重要。尤其是在处理敏感信息如数据库连接字符串时更是如此。`Web.Config`是ASP.NET应用程序的核心配置文件,用于存储应用...
本教程将详细介绍如何通过编程方式直接生成`web.config`配置文件,避免手动拼接字符串带来的繁琐和易错问题。 首先,让我们了解一下`web.config`文件的基本结构。`web.config`是基于XML格式的,包含各种节(section...
在这个实例中,我们将从Web.config中读取数据库连接字符串,以便与MSSQL数据库建立连接。在Web.config中,连接字符串通常位于`<connectionStrings>`元素内,如下所示: ```xml <connectionStrings> ;Initial ...
一旦在Web.config文件中配置了数据库连接字符串,就可以在代码中通过`ConfigurationManager.ConnectionStrings`或`ConfigurationSettings.AppSettings`等方法轻松获取并使用它们。例如,为了获取上面定义的...
在`web.config`中定义数据库连接字符串,可以方便地管理和维护应用程序与数据库的连接。 对于Access数据库,连接字符串通常包括以下几部分:数据库文件路径、提供程序(通常是Jet OLEDB)、数据库版本、用户ID和...
例如,如果web.config文件中配置了多个连接字符串,每个连接字符串都有不同的providerName,那么在代码中可以根据providerName的值来决定使用哪个连接字符串,从而执行对应的数据库脚本。 总之,web.config中的连接...