2010-04-21 28 views
11

Tôi nhận thấy rằng sau khi tôi sử dụng AssemblyDelaySignAttribute để cho biết rằng hội đồng đang được phát triển và không cần phải ký ngay bây giờ, tôi sẽ phải sử dụng sn -Vr foolib.dll để đăng ký xác minh tên mạnh mẽ đã tắt cho hội đồng này.Điểm trì hoãn ký hợp đồng .NET là gì?

Làm cách nào để thực hiện điều này vòng kết nối? Tại sao không chỉ để lại hội đồng unsigned cho đến khi nó được thực hiện đầy đủ? Đó không phải là ít phiền toái?

Trả lời

17

Một vài lý do ...

  1. Không thể thêm cụm từ không có tên mạnh o GAC
  2. Liên quan đến số 1, các hội đồng không thuộc GAC không được hưởng lợi nhiều từ NGEN
  3. Hội đồng có tên mạnh mẽ thể hiện hành vi khác nhau khi nói đến lắp ráp và tải với tên riêng.
  4. Assemblies không có tên mạnh không thể được tham chiếu bởi một assembly tên mạnh

Vì vậy, trong tổ chức nơi quá trình ký kết được kiểm soát chặt chẽ, nó giúp để có thể giả mạo nó ra để phát triển.

+0

Cảm ơn Josh .... – smwikipedia

+0

một trong số ít câu trả lời thực sự giải thích _motivation_, không chỉ là trường hợp sử dụng hoặc cơ chế - bật lên! – staafl

+0

Xin lỗi - Tôi mới làm điều này và liên quan đến câu hỏi nhưng không thể trả lời câu hỏi này. Không phải 4 lý do đó chỉ giải thích sự cần thiết phải ký kết mạnh mẽ? Nhưng nếu - trong môi trường phát triển hay cách khác - bạn quyết định chuẩn bị sử dụng một hội đồng không được ký kết chặt chẽ và tôi nghĩ đây là câu hỏi thực sự: an toàn hơn hoặc mong muốn về "ký chậm" hơn là không ký ? Tại sao chúng ta không thể có một môi trường dev miễn phí khi ký hợp đồng thì phải chịu đựng nỗi đau khi ký khi nó thực sự thêm tính bảo mật? Chắc chắn một sự trì hoãn ký kết với một khóa công khai là một trò đùa?Bất kỳ thông tin chi tiết nào được đánh giá cao ... –

6

Từ AssemblyDelaySignAttribute Class

ký chậm được sử dụng khi tác giả của hội đồng không có truy cập vào các khóa riêng sẽ sử dụng để tạo chữ ký

+0

Cảm ơn người xem. – smwikipedia

3

Đây là kịch bản mà Ký hiệu trì hoãn được cho là ngăn chặn:

Công ty của bạn tạo hệ thống giao dịch cho ngân hàng. Jack là một nhân viên bất mãn. Anh ấy đã làm việc cho nhóm của bạn trong một năm và đã có quyền truy cập vào khóa riêng được sử dụng để ký hợp đồng vì nó là một phần của bản dựng mà mọi người sử dụng. Jack có một blowout với người quản lý của mình và lá với tất cả các mã nguồn. Bây giờ Jack quyết định để có được ngay cả. Ông đi câu cá cho các nhân viên của ngân hàng nơi phần mềm của bạn được đặt và ông nhận được một vài người trong số họ để tải về một tiện ích mà hoán đổi một hội đồng hợp pháp cho một mà Jack xây dựng và ký kết. Bởi vì chữ ký phù hợp, chương trình gọi điện thoại không bao giờ khôn ngoan hơn khi một thành phần quan trọng đã bị xâm phạm.

Mục đích của 'Ký trễ' là chỉ các kỹ sư xây dựng mới có quyền truy cập vào chữ ký. Về mặt lý thuyết, điều này làm giảm số lượng người bạn cần tin tưởng hoàn toàn bằng mã nguồn của bạn. Các kỹ sư phần mềm dự kiến ​​sẽ vô hiệu hóa (bỏ qua) kiểm tra tên mạnh khi họ xây dựng và gỡ lỗi.