2011-05-05 14 views
12

Tôi đang tạo mô hình cho cơ sở dữ liệu và tò mò tại câu lệnh sau trong trình hướng dẫn Mô hình thực thể ADO.NET nơi bạn có các tùy chọn chọn Có hoặc Không làm nơi lưu trữ dữ liệu nhạy cảm -Cách đặt dữ liệu nhạy cảm của bạn trong mã ứng dụng khi tạo ADO.NET Model? D một số thẻ là

"Không, loại trừ dữ liệu nhạy cảm khỏi chuỗi kết nối. Tôi sẽ đặt nó trong mã ứng dụng của tôi".

Tôi chưa bao giờ sử dụng tùy chọn này và chỉ muốn tìm hiểu xem tôi đã làm nơi tôi sẽ phải chỉ định dữ liệu nhạy cảm của mình. Bất kỳ ý tưởng?

+0

Câu hỏi rất hay! Tôi cũng muốn biết điều đó. – Jordan

Trả lời

-2

Đó là tên người dùng và mật khẩu cho chuỗi kết nối. Nếu bạn không có chúng trong tệp cấu hình, bạn sẽ phải cung cấp chúng khi tạo ngữ cảnh dữ liệu.

+3

Nhưng làm thế nào để bạn làm điều này? –

7

Set đối số chuỗi kết nối của các nhà xây dựng mẫu:

MyEntities1 db = new MyEntities1 ("metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=';Data Source=localhost;Initial Catalog=myDb;User ID=user1;Password=myPass;MultipleActiveResultSets=True';"); 
3

Tạo Encrypted DLL để giữ kết nối chuỗi

Sửa đổi các constructor của các đối tượng

// Separate Encrypted DLL file 
public static class secureData() 
{ 
    public static string ConString = @"Data Source=YOUR_SERVER;Initial 
    Catalog=YOUR_DB;Persist Security Info=True;User 
    ID=YOUR_USER;Password=YOUR_PASSWORD"; 
} 


public sampleDBEntities() : base("name=sampleDBEntities") 
    { 
     this.Database.Connection.ConnectionString = secureData.ConString ; 
    } 
+0

Vâng, điều này được nó ra khỏi web.config, nhưng sự hiểu biết của tôi là nó khá nhiều chỉ là có thể nhìn thấy trong obfuscated C# mã, không? –

+0

Có. Nhưng bạn có thể sử dụng ** kỹ thuật mã hóa ** để bảo vệ các chuỗi kết nối của bạn. –

+0

@ WilliamT.Mallard Ngoài ra, bạn có thể viết một số mã để đọc mật khẩu từ một nơi nào đó an toàn hơn. – Dan

0

Đây là những gì tôi có được sử dụng trong quá khứ, mặc dù nhiều người sẽ cho rằng nó không an toàn để lưu trữ mật khẩu văn bản thuần túy trong các tệp nguồn của bạn. Có các phương pháp để bảo mật điều này bằng cách mã hóa chuỗi kết nối của bạn;

public db_entity() 
      : base("name=db_entity") 
     { 
      this.Database.Connection.ConnectionString= "server=localhost;user id=<USERNAME>;Password=<PASSWORD.;persistsecurityinfo=True;database=<DB_NAME>";    
     } 
Các vấn đề liên quan