2011-08-05 16 views
5

Jeśli mam 5 komputerów docelowych i mam zamiar zainstalować aplikację na jednym z komputerów docelowych. Jak uniemożliwić użytkownikom kopiowanie mojej aplikacji na inne komputery docelowe?C# Licencja aplikacji Komponenty i elementy sterujące

Aby było jasne, nie chcę, aby kopiowały one moją aplikację po instalacji (nie powinny kopiować mojej aplikacji z zainstalowanego folderu aplikacji). Problem polega na tym, że instaluję i wdrażam aplikację przy użyciu Instalatora i instalacji programu Visual Studio 2010, ale każdy może skopiować mój folder aplikacji po instalacji, na przykład mój folder aplikacji (exe, DLL i zasoby) znajduje się w "Program Files/MyApplication" . W rzeczywistości mogą skopiować moją aplikację z tego folderu i wkleić ją na inne komputery, a następnie użyć. Oczywiście, że mogą go skopiować, ale myślę, że nie powinni móc korzystać z mojej skopiowanej aplikacji, prawda? Czy istnieje sposób, aby chronić ich przed kopiowaniem mojej aplikacji? Muszę napisać dodatkowy kod?

Jestem naprawdę nowy w dystrybucji oprogramowania. Proszę, poprowadź mnie, co mam zrobić. Dzięki

Odpowiedz

8

Możesz użyć Rhino Licensing framework do generowania pliku licencji. Ma klasę LicenseGenerator, która ma metodę Generate. Oto, jak to wygląda:

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

Generowanie metody wymaga podania nazwy licencjobiorcy. Unikalny identyfikator licencji, który można wygenerować jako Guid.NewGuid(), datę wygaśnięcia i słownik atrybutów, to miejsce, w którym można przechowywać parę niestandardowych kluczy wartości w pliku licencji.

Sposób, w jaki może działać, polega na tym, że można osadzić informacje o urządzeniu w licencji, a na etapie weryfikacji można sprawdzić, czy licencja należy do tego samego komputera. Oznacza to, że nie można skopiować pliku licencji jednego komputera i umieścić go na innym komputerze, ponieważ nie będzie on działał.

w pliku licencji można przechowywać następujące informacje:

  • Data ważności pozwolenia
  • Imię i nazwisko osoby, dla których licencja jest generowany
  • Hash obliczony na podstawie informacji systemowych
+0

To oznacza, że ​​muszę utworzyć licencję wraz z moją aplikacją dla każdego wdrożenia? –

+0

Po raz pierwszy musisz utworzyć licencję. W tym celu należy ustawić datę wygaśnięcia i informacje o systemie. Jeśli jakakolwiek wartość zostanie zmieniona lub zmodyfikowana, w takim przypadku, ponownie musisz wygenerować nową licencję dla aplikacji. –

2

Używam aplikacji śledzącej licencję. Jest to płatne oprogramowanie, ale pozwala na licencjonowanie części lub całości aplikacji. Umożliwia również weryfikację klucza w weryfikacji on-line. Możliwe jest wykorzystanie informacji o klientach do wygenerowania klucza, więc rejestracja za pomocą informacji z komputera docelowego powinna być możliwa.

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

0

Gdy chcesz go naprawdę łatwo można użyć LimeLM. Prosta weryfikacja online za pomocą opcji próbnej.

4

Standardowym sposobem zapobiegania użytkownikom uruchamiania aplikacji na więcej niż jednym komputerze jest zablokowanie produktu na niektórych parametrach tego systemu. Musisz jednak zastanowić się nad następującymi kwestiami, aby uniknąć przyszłej pracy lub zepsuć klientów na drodze. Surowe systemy, które nie zajmują się tymi kwestiami dały węzeł blokowaniem się złą sławą, ale gdy prawidłowo węzła-zamek jest dyskretny, elastyczny i bezpieczny:

  • Jak można dokładnie uzyskać parametry systemowe można zablokować do?Pytanie użytkowników o przeczytanie/wpisanie ich jest powszechnym źródłem błędów, na przykład przez błędne odczytanie "l" dla "1" lub "0" dla "O".
  • Adres MAC jest powszechnie używany do blokowania węzłów, ale jest to zły wybór, ponieważ adres MAC może być ustawiony przez administratora w wielu systemach operacyjnych.
  • Załóżmy, że zablokowałeś licencję na kilka parametrów systemu. Co się stanie, jeśli użytkownik dokona drobnej aktualizacji systemu, powodując zmianę jednego z nich? Nie będą zadowoleni, jeśli Twoja aplikacja nagle odmówi uruchomienia.
  • Użytkownicy będą chcieli przenieść licencję na inny komputer w pewnym momencie. Musisz zastanowić się, w jaki sposób możesz to wspierać, nie czyniąc go luką w zabezpieczeniach.
  • Komputery użytkowników ulegają awarii - zdarza się. W jaki sposób mogą ponownie uruchomić licencję na nowym/przebudowanym systemie?

Po prostu niektóre problemy, z którymi się zetknęliśmy w naszych rozwiązaniach. Mam nadzieję że to pomoże.

0

Aby temu zapobiec, należy użyć licencji na komputer/telefon komórkowy. Gwarantuje to, że licencja może zostać zatwierdzona tylko z jednego komputera - jeśli weryfikacja licencji nie powiedzie się, możesz zdecydować, jakie podjąć kroki - czy wyjść z aplikacji, pokazać użytkownikowi komunikat, zezwolić na okres karencji itp.

Wypróbuj CryptoLicensing, która obsługuje licencje aktywowane/zablokowane maszynowo.

ZASTRZEŻENIE: Pracuję dla LogicNP Software, programisty CryptoLicensing.

Powiązane problemy