2012-06-19 1 views
7

Tôi đang phát triển ứng dụng trong Visual studio 2010, ứng dụng của tôi được kết nối liên tục với internet. Tôi có nên kích hoạt This is a full trust application trong tab Bảo mật không?Tôi có nên chọn: Đây là ứng dụng tin cậy đầy đủ

Nếu có thì ý nghĩa của nó chính xác là gì? Tôi đã đọc tài liệu msdn nhưng tôi không thể hiểu nó. Tôi cần một cái gì đó trong những dòng ngắn khi sử dụng tính năng này.

Trả lời

8

Đừng lo lắng, nó không ảnh hưởng đến bảo mật kết nối internet của bạn, nhưng nó ảnh hưởng đến cách khuôn khổ .NET xử lý ứng dụng của bạn. Vì vậy, có - bạn có thể kích hoạt nó mà không có nguy hiểm, nhưng nếu có thể bạn nên khai báo trong mã của bạn mà mức độ truy cập ứng dụng của bạn cần phải tinh chỉnh bảo mật. Để giải thích chi tiết:

Tin cậy đầy đủ có nghĩa là ứng dụng của bạn cần tất cả các quyền mà khuôn khổ .NET cung cấp. Là nhà phát triển, bạn khai báo mức độ tin cậy mà ứng dụng của bạn cần để có thể chạy, điều này được gọi là "bảo mật truy cập mã" ". Bảo mật truy cập mã có nghĩa là bạn đang nói trình biên dịch thông qua các thuộc tính loại hoạt động mà mã của bạn cần để thành công.

Khuôn khổ .NET lần lượt ước tính mức độ tin cậy mà ứng dụng sẽ được cấp: Ví dụ: nếu bạn triển khai ứng dụng của mình sang máy tính từ xa, có thể truy cập được qua mạng chia sẻ bên ngoài mạng nội bộ của bạn *) .NET Framework cho nó ít hơn "Full trust". Mô hình này được gọi là mô hình bảo mật "dựa trên bằng chứng" , được thực hiện thông qua mã được gọi là được quản lý.

Quản lý mã có nghĩa là ứng dụng NET của bạn được biên dịch vào MSIL (M icro s oft của tôi ntermediate L anguage) và "vừa đúng lúc" (tức là chỉ khi bạn thực hiện nó, trừ khi bạn chọn create native code explicitly via NGEN before execution) vào ngôn ngữ máy cụ thể của CPU. Điều này cho phép thiết lập một lớp trừu tượng bổ sung, cho phép .NET Framework kiểm soát mã của bạn và cho phép nó hoặc - nếu không - để ném một ngoại lệ bảo mật.

Tất cả mã bạn viết cho khung .NET ở một trong các ngôn ngữ C# hoặc VB.NET là theo mã được quản lý mặc định. Tuy nhiên, có rất ít trường hợp bạn muốn nhúng mã không được quản lý - còn được gọi là "mã không an toàn" (trong thuật ngữ .NET). Một cách là tạo một phần "không an toàn" trong mã của bạn (mà tôi chỉ đề cập ở đây để hoàn thành - tức là trong trường hợp bạn có thể đã đi qua nó trong mã nguồn). Như tôi đã đề cập trước đây, bạn chỉ định mã làm gì thông qua các thuộc tính, nhưng bạn cũng có thể thay đổi các quy tắc áp dụng trên máy tính cục bộ của mình để thay đổi hành vi này thông qua cài đặt bảo mật .NET. Thông thường, bạn nên chỉ định chính xác nhất có thể những quyền mà ứng dụng của bạn cần và hạn chế nhất có thể.

Nếu bạn quan tâm, bạn có thể tìm thêm ở đây: Exploring the .NET Framework Security Model

*) Cảm ơn bạn đã gợi ý của bạn, Damien! Thật vậy, các phiên bản trước đó của khung công tác đã cung cấp các tài nguyên trên mạng (mạng chia sẻ) ít tin cậy hơn, với các kết nối mạng nội bộ .NET 4 và máy tính để bàn có sự tin cậy hoàn toàn.

+1

Mạng chia sẻ - đã thay đổi trong [.NET 4] (http://msdn.microsoft.com/en-us/library/ff527276.aspx): "Các ứng dụng mạng nội bộ và máy tính để bàn được cấp toàn bộ sự tin cậy". –

+0

Cảm ơn bạn về câu trả lời chi tiết này –