Chapter 1__1.2 Storing Connection Strings

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为了保证程序的可拓展性,安全性以及操作的简易性,必须要把连接数据库的连接字符串放在一个好的地方。</p> <p>1.21 NET Framework 2.0中引入的保护作为加密存储连接的ASP.NET应用程序中的字符串机制配置。它引进了<font face="Courier New">connectionStrings连接字符串的集合。在以前的版本中,将连接字符串保持到appSettings 节点中。</font></p> <p><font face="Courier New">1.23 几项连接安全的技术如下:</font></p> <p><font face="Courier New">&nbsp;&nbsp;   注意一下:(1)尽可能的使用集成连接integrated security whenever possible。</font></p> <p>        &nbsp; (2)千万不要使用空密码和弱密码。</p> <p>        &nbsp; (3)一定不要用sa或任何关于管理员的帐号如administrative。</p> <p>         (4)尽量加密。</p> <p>1.2.3.1&nbsp;Application configuration file</p> <p>    应用程序配置文件是基于XML的文本文件,一个web应用程序可以有多个配置文件的所有名为Web.config的文件。每个配置文件支持配置这它所在目录以及子目录的东西,它可以覆盖和继承其他的配置东西。计算机配置文件的Machine.config在。NET运行时安装的配置位于子目录,包含配置信息适用于计算机。</p> <p>    在ASP.NET中最好放在application configuration file中,既安全又方便。数据库连接字符串通常保存<font face="Courier New">&lt;connectionStrings&gt;</font>节点中</p> <p>    &lt;configuration&gt;<br />&nbsp;&nbsp;&nbsp; &lt;connectionStrings&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;add key="ConnectionString"<br />value="Data Source=(local);Initial Catalog=AdventureWorks;<br />User ID=sa;password=;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/connectionStrings&gt;<br />&lt;/configuration&gt;</p> <p><font face="Courier New">ConnectionStrings</font> 属于System.Configuration 类用来检索&nbsp;&lt;connectionStrings&gt;里面的数据</p> <p>1.2.3.2特点:</p> <p>    优点:方便。应用程序配置文件,方便的部署。</p> <p>    缺点:应用程序配置文件本身并不具有安全可靠,因为它们存储在文本文件中明确的信息是通过文件系统访问</p> <p>----所以要对它进行加密和设置访问权限。</p> <p>1.2.3.3例子</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 请确保您的名称为Windows窗体应用程序配置文件为app.config,这是默认值。在生成时。这个文件会自动复制到由Visual Studio启动目录。名为applicationName.exe.config</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1)Create a new C# console application named <tt>StoredConnectionStringConfig</tt>。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2)加一个应用配置的模板。</p> <p>   (3) Add a SQL Server connection string within a <tt>connectionStrings</tt> element in the file <span class="docEmphasis">App.config</span></p> <p>&nbsp;</p><pre>      &lt;?xml version="1.0" encoding="utf-8" ?&gt;         &lt;configuration&gt;         <strong>&lt;connectionStrings&gt;       &lt;add name="AdventureWorks"       providerName="System.Data.SqlClient"       connectionString="Data Source=(local);     Integrated security=SSPI;Initial Catalog=AdventureWorks;" /&gt;        &lt;/connectionStrings&gt;</strong>       &lt;/configuration&gt;</pre><pre>    (4)添加一个对System.Configuration 程序集的引用。</pre><pre>    (5)<table border="1" cellspacing="0" cellpadding="5" width="*"><tr><td><div class="codeSegmentsExpansionLinks">Code View:</div><pre>using System; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace StoreConnectionStringConfig { class Program { static void Main(string[] args) { // Enumerate connection strings Console.WriteLine("---Connection string enumeration---"); foreach (ConnectionStringSettings css in ConfigurationManager.ConnectionStrings) { Console.WriteLine(css.Name); Console.WriteLine(css.ProviderName); Console.WriteLine(css.ConnectionString); } // Retrieve a connection string and open/close it Console.WriteLine("n---Using a connection string---"); Console.WriteLine("-&gt; Retrieving connection string AdventureWorks"); string sqlConnectString = ConfigurationManager.ConnectionStrings[ "AdventureWorks"].ConnectionString; SqlConnection connection = new SqlConnection(sqlConnectString); Console.WriteLine("-&gt; Opening connection string."); connection.Open( ); Console.WriteLine("Connection string state = {0}", connection.State); connection.Close( ); Console.WriteLine("-&gt; Closing connection string."); Console.WriteLine("Connection string state = {0}", connection.State); Console.WriteLine("nPress any key to continue."); Console.ReadKey( ); } } } </pre></td></tr></table></pre><pre>&nbsp;</pre> <p><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/microsoftchina/untitled.jpg" width="500" height="154" /></p> <p>一下的了解下:</p> <p>  Hardcode in the application</p> <p>  Universal data link (UDL) file(在SQL Server。NET数据提供程序不支持在其连接字符串UDL文件。 UDL文件未加  密)</p> <p>  Windows registry。把连接数据库的配置文件放到注册表中。如&nbsp;<tt>HKEY_LOCAL_MACHINESOFTWARE</tt></p> <p><tt>&nbsp;&nbsp;&nbsp;&nbsp; 结束。</tt>      <br /></p>

你可能感兴趣的:(Connection)