现在的位置: 首页 > 综合 > 正文

Chapter 1__1.2 Storing Connection Strings

2013年02月23日 ⁄ 综合 ⁄ 共 2913字 ⁄ 字号 评论关闭

       为了保证程序的可拓展性,安全性以及操作的简易性,必须要把连接数据库的连接字符串放在一个好的地方。

1.21 NET Framework 2.0中引入的保护作为加密存储连接的ASP.NET应用程序中的字符串机制配置。它引进了connectionStrings连接字符串的集合。在以前的版本中,将连接字符串保持到appSettings 节点中。

1.23 几项连接安全的技术如下:

     注意一下:(1)尽可能的使用集成连接integrated security whenever possible。

          (2)千万不要使用空密码和弱密码。

          (3)一定不要用sa或任何关于管理员的帐号如administrative。

         (4)尽量加密。

1.2.3.1 Application configuration file

    应用程序配置文件是基于XML的文本文件,一个web应用程序可以有多个配置文件的所有名为Web.config的文件。每个配置文件支持配置这它所在目录以及子目录的东西,它可以覆盖和继承其他的配置东西。计算机配置文件的Machine.config在。NET运行时安装的配置位于子目录,包含配置信息适用于计算机。

    在ASP.NET中最好放在application configuration file中,既安全又方便。数据库连接字符串通常保存<connectionStrings>节点中

    <configuration>
    <connectionStrings>
        <add key="ConnectionString"
value="Data Source=(local);Initial Catalog=AdventureWorks;
User ID=sa;password=;"
        />
    </connectionStrings>
</configuration>

ConnectionStrings 属于System.Configuration 类用来检索 <connectionStrings>里面的数据

1.2.3.2特点:

    优点:方便。应用程序配置文件,方便的部署。

    缺点:应用程序配置文件本身并不具有安全可靠,因为它们存储在文本文件中明确的信息是通过文件系统访问

----所以要对它进行加密和设置访问权限。

1.2.3.3例子

       请确保您的名称为Windows窗体应用程序配置文件为app.config,这是默认值。在生成时。这个文件会自动复制到由Visual Studio启动目录。名为applicationName.exe.config

      (1)Create a new C# console application named StoredConnectionStringConfig

      (2)加一个应用配置的模板。

   (3) Add a SQL Server connection string within a connectionStrings element in the file App.config

 

      <?xml version="1.0" encoding="utf-8" ?>
        <configuration>
            <connectionStrings>
              <add name="AdventureWorks"
               providerName="System.Data.SqlClient"
               connectionString="Data Source=(local);
              Integrated security=SSPI;Initial Catalog=AdventureWorks;" />
          </connectionStrings>
      </configuration>
    (4)添加一个对System.Configuration 程序集的引用。
    (5)
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("-> Retrieving connection string AdventureWorks");
            string sqlConnectString =
                ConfigurationManager.ConnectionStrings[
                "AdventureWorks"].ConnectionString;
            SqlConnection connection = new SqlConnection(sqlConnectString);
            Console.WriteLine("-> Opening connection string.");
            connection.Open(  );
            Console.WriteLine("Connection string state = {0}", connection.State);
            connection.Close(  );
            Console.WriteLine("-> Closing connection string.");
            Console.WriteLine("Connection string state = {0}", connection.State);

            Console.WriteLine("\nPress any key to continue.");
            Console.ReadKey(  );
        }
    }
}
 

一下的了解下:

  Hardcode in the application

  Universal data link (UDL) file(在SQL Server。NET数据提供程序不支持在其连接字符串UDL文件。 UDL文件未加  密)

  Windows registry。把连接数据库的配置文件放到注册表中。如 HKEY_LOCAL_MACHINE\SOFTWARE

     结束。      

抱歉!评论已关闭.