Bạn cần ký hợp đồng nếu bạn muốn đặt chúng trong GAC.
Nếu bạn ký một tệp thực thi, thì mọi thư viện lớp mà nó liên kết tới cũng cần được ký. Điều này có thể khó khăn nếu bạn đang sử dụng thư viện của bên thứ ba (đặc biệt nếu bạn cần sử dụng điều khiển ActiveX hoặc tương tự).
Richard Grimes đã viết một hội thảo tốt về an ninh trong .NET và bao gồm một chương về vấn đề này: Security Workshop
Lý do cho tất cả các hội đồng được ký kết với các tập tin .snk cùng có thể là nếu ông sử dụng đơn vị thử nghiệm với phạm vi mã. Để có thể thực hiện bảo mật mã (ít nhất là với các công cụ được tích hợp vào phiên bản thử nghiệm của Visual Studio 2005) và nếu các hội đồng được ký, bạn cần phải chỉ định tệp .snk nào được sử dụng để ký, nhưng tôi nghĩ bạn chỉ có thể chỉ định một tệp .snk cho toàn bộ giải pháp, vì vậy nếu bạn đăng ký các thư viện lớp khác nhau với các tệp .snk khác nhau, bạn chỉ có thể kiểm tra phạm vi mã trên một trong số chúng tại một thời điểm.
Nguồn
2010-10-20 07:48:25
Câu trả lời rõ ràng – Eon
Lưu ý rằng việc xác minh chữ ký không diễn ra nữa (kể từ .NET 2.0) khi được đặt trong GAC; [nó chỉ xảy ra một lần, khi thêm nó vào GAC] (http://davidyardy.com/archive/strong-names-and-signing-assemblies-netaspx/). – Abel
Bạn nghĩ gì về việc ký nó ngày nay? Trên các hệ thống dựa trên web? Nếu tôi đúng, nó chỉ cần thiết khi nói về phần mềm đã cài đặt, đúng không? Nếu tôi xuất bản ứng dụng của mình lên Azure bằng TFS, tôi biết nó không bị giả mạo, đúng không? Hay tôi thiếu một số phần bảo mật? –