2009-10-22 41 views
16

Trong cài đặt dự án studio trực quan, bạn có thể chọn một tập tin khóa tên mạnh để ký tên assembly. Khi tạo một cái mới, bạn có thể chọn để bảo vệ nó bằng một mật khẩu. Khi nào bạn nên làm điều này? Và khi nào bạn không nên?Khi nào bạn nên bảo vệ tệp khóa tên mạnh bằng mật khẩu?

Tôi nghĩ rằng nó có thể là ví dụ không được quá thông minh để bảo vệ nó với một mật khẩu nếu dự án là một dự án mã nguồn mở được lưu trữ trên Codeplex hoặc tương tự. Hay nó vẫn được bảo vệ? Mọi người sẽ không thể tải xuống nguồn và biên dịch nó nếu tệp khóa được bảo vệ? Hoặc, điều này hoạt động chính xác như thế nào?

Trả lời

12

Nói chung, bạn nên bảo vệ bằng mật khẩu nếu bạn không tin tưởng những người có quyền truy cập vào nó. Bất kỳ ai có quyền truy cập vào tệp khóa đều có thể tạo một assembly với tên mạnh của bạn (không giống như mã xác thực, chúng không mạo danh bạn, nhưng chúng có thể tải các assembly của chúng thay vì bạn)

Đối với kịch bản nguồn mở bạn đã mô tả , mọi người luôn có thể biên dịch mã - họ chỉ cần tạo một tệp khóa mới, nhưng các assembly mà chúng tạo ra sẽ không được nạp bởi các assembly mà cố gắng tải các assembly của bạn.

+2

Ooh. Vì vậy, nếu tôi có hai hội đồng được ký kết với các phím tên mạnh. Nếu tôi sau đó thêm một tham chiếu từ một đến khác, nó sẽ chỉ làm việc với một trong đó đã được ký với phím bên phải? – Svish

+2

Nếu bạn tham chiếu đến một hội đồng tên mạnh, nó không thể thay thế vào thời gian chạy với một hội đồng ký với một khóa khác (không hoàn toàn chính xác, nhưng hãy để những thứ nâng cao hơn) –

+0

Và bởi * tại thời gian chạy * bạn có nghĩa là khi ứng dụng được chạy, không phải trong khi nó đang chạy, phải không? (Chỉ để chắc chắn tôi không hiểu lầm: p) – Svish

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