2010-02-26 34 views
5

Trong ASP.NET tôi có thể lưu trữ chuỗi kết nối trong web.config, như khôn ngoan tôi cần lưu trữ chuỗi kết nối hoặc một số giá trị cấu hình trong một số tệp cho ASP cổ điển.Nơi lưu chuỗi kết nối cho ASP cổ điển?

Tôi làm cách nào để thực hiện việc này? Để đạt được điều này tôi có cần phải sử dụng XML File và lưu trữ chuỗi kết nối trong này?

Thực tiễn tốt nhất là gì ???

Trả lời

6

sử dụng globa.asa để đặt giá trị trong đối tượng ứng dụng.

+0

Hoạt động trong một ứng dụng đó, nhưng nó sẽ không hoạt động trên toàn bộ doanh nghiệp (giả sử có nhiều ứng dụng) –

+0

Cấu hình thường trên cơ sở mỗi ứng dụng (bao gồm asp.net web.config). An ninh khôn ngoan nó cũng là thực hành tốt nhất để sử dụng tài khoản người dùng db khác nhau cho mỗi ứng dụng. –

+0

Và nếu mỗi khách hàng của tôi có một chuỗi kết nối? Mỗi một trong số họ truy cập cơ sở dữ liệu Azure SQL. – Onaiggac

5

Bạn có thể tạo tệp ASP chứa chuỗi kết nối dưới dạng biến chuỗi, cùng với bất kỳ thông tin cấu hình nào khác, sau đó đưa nó vào tệp kết nối với cơ sở dữ liệu.

+0

Tệp này phải là tệp .inc hoặc .asp? – nimi

+3

biến nó thành tệp .asp. Trong quá khứ xa xôi, tôi đã thấy một máy chủ được cấu hình theo cách mà các tệp .inc không được giải thích bởi thời gian chạy asp, dẫn đến máy chủ tải xuống nguồn của tệp .inc. Điều đó sẽ ít xảy ra hơn với tệp .asp. –

+0

@Nimesh và @Paul, như Joost đã đề xuất trong câu trả lời của anh ta, sử dụng 'global.asa' có vẻ là giải pháp tốt hơn .. Nó có thể truy cập bởi tất cả các trang mà không cần thêm bất cứ điều gì ... –

2

Một câu nói tôi nhặt thời gian gần đây ...

Đừng làm điều gì đó ngớ ngẩn như cửa hàng bí mật trong một tệp được ngồi trong một thư mục ảo trên một máy chủ Web (web.config đến bận tâm). Web máy chủ đã được biết là vô tình cho phép các tệp được tải xuống do lỗi. Đối với dụ, chuỗi kết nối trong cổ điển trang ASP có thể bị đánh cắp trong quá khứ bằng cách chỉ một trình duyệt Web để 'page.asp :: $ DỮ LIỆU' thay vì page.asp. IIS bị lừa này vào nghĩ rằng yêu cầu là dành cho tệp tĩnh vì .asp :: $ DATA sẽ không khớp với bất kỳ thứ gì trong bản đồ bản đồ của nó. Nhưng hậu tố :: $ DATA có ý nghĩa đặc biệt đối với hệ điều hành : Nó chỉ ra luồng NTFS mặc định cho tệp, đó là những gì bạn nhận được khi bạn đọc nội dung của tệp bình thường. Nói cách khác, yêu cầu hệ thống tệp cho page.aspx :: $ DATA giống như yêu cầu nội dung của trang của page.aspx. Do đó IIS sẽ phục vụ nguồn của trang ASP thay vì diễn giải nó dưới dạng tập lệnh . Đã có rất nhiều shenanigans như thế này trong những năm qua, nhưng hầu hết mọi người đều đồng ý rằng bạn đang lưu trữ tốt hơn các tệp nhạy cảm bên ngoài bất kỳ thư mục ảo nào trên máy chủ Web . Thậm chí tốt hơn, giữ các tệp nhạy cảm trên phân vùng khác, sau đó đặt các thư mục ảo ảo của bạn.

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