2011-08-05 29 views
5

Nếu tôi có 5 máy tính mục tiêu và tôi sẽ cài đặt ứng dụng của mình vào một trong các máy tính mục tiêu đó. Làm cách nào để ngăn người dùng sao chép ứng dụng của tôi sang các máy tính mục tiêu khác?C# Các thành phần và điều khiển giấy phép ứng dụng

Để làm rõ, tôi không muốn chúng sao chép ứng dụng của tôi sau khi cài đặt (Chúng không được sao chép ứng dụng của tôi từ thư mục ứng dụng đã cài đặt). Vấn đề là bây giờ tôi đã thiết lập và triển khai ứng dụng của mình bằng cách sử dụng Visual Studio 2010 Setup và Deployment, nhưng bất cứ ai cũng có thể sao chép thư mục ứng dụng của tôi sau khi cài đặt, ví dụ, thư mục ứng dụng (exe, DLLs và resources) của tôi nằm ở "Program Files/MyApplication" . Họ thực sự có thể sao chép ứng dụng của tôi từ thư mục đó và dán nó vào các máy tính khác, sau đó sử dụng nó. Tất nhiên, họ có thể sao chép nó nhưng tôi nghĩ rằng họ không nên có thể sử dụng ứng dụng sao chép của tôi phải không? Có cách nào để bảo vệ họ sao chép đơn đăng ký của tôi không? Tôi phải viết một mã bổ sung?

Tôi thực sự mới về phân phối phần mềm. Hãy hướng dẫn tôi những gì tôi phải làm. Cảm ơn

Trả lời

8

Bạn có thể sử dụng Rhino Licensing framework để tạo tệp giấy phép. Nó có lớp LicenseGenerator có phương thức Generate. Dưới đây là hình thức:

public string Generate(string name, Guid id, DateTime expirationDate, IDictionary<string, string> attributes, LicenseType licenseType); 

Phương pháp tạo sẽ lấy tên của người được cấp phép. Id duy nhất cho giấy phép có thể được tạo dưới dạng Guid.NewGuid(), ngày hết hạn và từ điển thuộc tính là nơi bạn có thể lưu trữ cặp giá trị khóa tùy chỉnh trong tệp giấy phép.

Cách hoạt động là, bạn có thể nhúng thông tin của máy trong giấy phép và trong giai đoạn xác minh, bạn có thể kiểm tra xem giấy phép có thuộc cùng một máy hay không. Điều này có nghĩa là bạn không thể sao chép tệp giấy phép của một máy và đặt nó trên một máy khác vì nó sẽ không hoạt động.

Trong tập tin giấy phép bạn có thể lưu trữ các thông tin sau:

  • Ngày hết hạn của giấy phép
  • Tên của người mà giấy phép được tạo ra
  • Hash tính toán dựa trên các thông tin hệ thống
+0

Điều đó có nghĩa là tôi phải tạo giấy phép cùng với đơn đăng ký của mình cho mỗi lần triển khai? –

+0

Lần đầu tiên bạn cần tạo giấy phép. Và trong đó bạn cần phải đặt ngày hết hạn và thông tin hệ thống. Nếu bất kỳ giá trị nào được thay đổi hoặc sửa đổi thì trong trường hợp đó, một lần nữa bạn phải tạo một giấy phép mới cho ứng dụng. –

2

Tôi sử dụng Trình theo dõi giấy phép Infralution. Đó là phần mềm thanh toán nhưng cho phép cấp phép một số phần hoặc toàn bộ ứng dụng. Nó cũng cho phép xác minh khóa trên xác minh trực tuyến. Có thể sử dụng thông tin khách hàng để tạo khóa để có thể đăng ký sử dụng thông tin từ máy tính mục tiêu.

http://www.infralution.com/licensing.html

0

Khi bạn muốn nó thực sự dễ dàng, bạn có thể sử dụng LimeLM. Xác minh trực tuyến đơn giản với tùy chọn dùng thử.

4

Cách thức tiêu chuẩn của ngành ngăn người dùng chạy một ứng dụng trên nhiều máy thực sự là khóa sản phẩm của bạn vào một số thông số của hệ thống đó. Tuy nhiên, bạn cần phải suy nghĩ về các vấn đề sau đây để tránh làm việc trong tương lai hoặc gây khó chịu cho khách hàng xuống đường. Các hệ thống thô không xử lý các vấn đề này đã cho phép khóa nút một tên không đúng, nhưng khi thực hiện đúng nút khóa là không phô trương, linh hoạt và an toàn:

  • Làm cách nào bạn có được chính xác các tham số hệ thống mà bạn sẽ khóa đến?Yêu cầu người dùng đọc/nhập chúng là một nguồn phổ biến của lỗi, ví dụ bằng cách đọc sai 'l' cho '1' hoặc '0' cho 'O'.
  • Địa chỉ MAC thường được sử dụng để khóa nút, nhưng đây là lựa chọn không tốt vì địa chỉ MAC có thể được đặt bởi quản trị viên trong nhiều hệ điều hành.
  • Giả sử bạn khóa giấy phép cho một số thông số của hệ thống. Điều gì sẽ xảy ra nếu người dùng thực hiện nâng cấp hệ thống nhỏ, vì vậy khiến một trong số họ thay đổi? Họ sẽ không vui nếu ứng dụng của bạn đột nhiên từ chối chạy.
  • Người dùng sẽ muốn chuyển giấy phép của họ sang một máy khác tại một thời điểm nào đó. Bạn sẽ cần phải suy nghĩ về cách bạn hỗ trợ điều này mà không làm cho nó trở thành một lỗ hổng bảo mật.
  • Máy của người dùng sẽ bị lỗi - điều đó xảy ra. Làm cách nào để họ có thể chạy lại giấy phép trên hệ thống mới/xây dựng lại của họ?

Một số vấn đề chúng tôi gặp phải và giải quyết trong các giải pháp của mình. Hi vọng điêu nay co ich.

0

Bạn cần sử dụng giấy phép được khóa máy/kích hoạt để ngăn chặn điều này. Điều này đảm bảo rằng giấy phép chỉ có thể được xác thực từ một máy - nếu xác thực giấy phép không thành công, bạn có thể quyết định các bước cần thực hiện - có nên thoát khỏi ứng dụng hay không, hiển thị thông báo cho người dùng, cho phép thời gian gia hạn, v.v.

Hãy thử CryptoLicensing hỗ trợ giấy phép được kích hoạt/khóa máy.

KHUYẾN CÁO: Tôi làm việc cho phần mềm LogicNP, nhà phát triển của CryptoLicensing.

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