2012-11-09 31 views
6

Bạn sử dụng Microsoft Visual Studio 2010 và Microsoft .NET Framework 4 để tạo một ứng dụng. Ứng dụng kết nối với cơ sở dữ liệu Microsoft SQL Server 2008. Ứng dụng sử dụng nhà cung cấp được quản lý bởi Microsoft ADO.NET SQL Server.Khi kết nối không thành công, ứng dụng ghi nhật ký thông tin kết nối, bao gồm chuỗi kết nối đầy đủ. Thông tin được lưu trữ dưới dạng văn bản thuần túy trong tệp .config.Thông tin bảo mật liên tục trong .Net 4

Bạn cần đảm bảo rằng thông tin đăng nhập cơ sở dữ liệu được bảo mật.

Bạn nên thêm chuỗi kết nối nào vào tệp .config?

A .Data Source = myServerAddress; Catalog ban đầu = myDataBase; Bảo mật tích hợp = SSPI; Thông tin bảo mật liên tục = false;

B .Data Source = myServerAddress; Catalog ban đầu = myDataBase; Bảo mật tích hợp = SSPI; Thông tin bảo mật liên tục = true;

C .Data Source = myServerAddress; Catalog ban đầu = myDataBase; Id người dùng = myUsername; Mật khẩu = myPassword; Thông tin bảo mật liên tục = false;

D .Data Source = myServerAddress; Catalog ban đầu = myDataBase; Id người dùng = myUsername; Mật khẩu = myPassword; Thông tin bảo mật liên tục = true;

Theo hướng dẫn, câu trả lời là 'A'. Nhưng theo tôi, câu trả lời là 'C'. Nếu chúng ta đang sử dụng Integrated Security = SSPI, chúng ta không cần phải cung cấp UserID và Password. Vì vậy, Persist Security Info = false không có hiệu lực.

Theo như tôi biết, Thông tin bảo mật liên tục chỉ có hiệu lực nếu chuỗi kết nối có Thông tin xác thực người dùng.

Bạn có thể vui lòng cho tôi biết cái nào đúng không? Cảm ơn.

Trả lời

5

Bạn nói đúng. Thông tin bảo mật liên tục = false chỉ có hiệu lực nếu tên người dùng và mật khẩu được cung cấp trong chuỗi kết nối. Nhưng câu hỏi là "Những gì bạn nên lưu trữ trong tập tin .config" và xem xét rằng "thông tin được lưu trữ dưới dạng văn bản thuần túy", bạn không nên lưu trữ UID và PWD trong tập tin cấu hình. Nếu bạn lưu trữ C, PWD và UID có thể được trích xuất từ ​​tệp .config. Nhưng nếu bạn lưu trữ A, không có thông tin xác thực để trích xuất.

Tôi không chắc chắn, tại sao A có "Persist Security Info=false", nhưng có vẻ như đó là một phương pháp hay. Xem MSDN ví dụ:

+0

* nhưng có vẻ như nó là một thực hành tốt * Nó cũng có vẻ vô cùng cần thiết, vì giá trị mặc định là 'false'. –

Các vấn đề liên quan