2011-08-05 7 views
5

5 대의 대상 컴퓨터가 있고 해당 대상 컴퓨터 중 하나에 응용 프로그램을 설치하려고합니다. 사용자가 내 응용 프로그램을 다른 대상 컴퓨터에 복사하지 못하게하려면 어떻게해야합니까?C# 응용 프로그램 라이센스 구성 요소 및 컨트롤

분명히하기 위해 설치 후 응용 프로그램을 복사하지 않아도됩니다. 설치된 응용 프로그램 폴더에서 응용 프로그램을 복사해서는 안됩니다. 문제는 이제 Visual Studio 2010 설치 및 배포를 사용하여 응용 프로그램을 설치하고 배포하지만, 설치 후 응용 프로그램 폴더 (exe, DLL 및 리소스)가 "Program Files/MyApplication" . 그들은 실제로 그 폴더에서 내 응용 프로그램을 복사하여 다른 컴퓨터에 붙여 넣은 다음 사용할 수 있습니다. 물론 복사 할 수는 있지만 복사 한 응용 프로그램을 사용할 수 없어야한다고 생각합니다. 신청서를 복사하는 것을 보호 할 수있는 방법이 있습니까? 추가 코드를 작성해야합니까?

저는 소프트웨어 배포판에 새로 도입되었습니다. 제가해야 할 일을 안내 해주십시오. 감사합니다.

답변

8

Rhino Licensing framework을 라이센스 파일 생성에 사용할 수 있습니다. 그것은 Generate 메소드를 가진 LicenseGenerator 클래스를가집니다. 다음은 그 모습입니다 :

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

Generate 메소드는 라이센스 사용자의 이름을 사용합니다. Guid.NewGuid(), 만료일 및 특성 사전으로 생성 할 수있는 라이센스의 고유 ID는 라이센스 파일에 사용자 지정 키 값 쌍을 저장할 수있는 곳입니다.

작동 방식은 기계의 정보를 라이센스에 포함 할 수 있으며 확인 단계에서 라이센스가 동일한 기계에 속하는지 여부를 확인할 수 있습니다. 즉, 한 시스템의 라이센스 파일을 복사하여 다른 시스템에 배치 할 수 없으므로 작동하지 않습니다. 다음과 같은 정보를 저장할 수있는 라이센스 파일에서

:

  • 라이센스의 유효 기간
  • 라이센스가 생성되어 누구를 위해 사람의 이름
  • 해시 시스템 정보를 기준으로 계산
+0

즉, 배포 할 때마다 응용 프로그램과 함께 라이센스를 만들어야한다는 의미입니까? –

+0

처음으로 라이센스를 만들어야합니다. 그리고 만료 날짜와 시스템 정보를 설정해야합니다. 이 값이 변경되거나 수정 된 경우 다시 응용 프로그램에 대한 새 라이센스를 생성해야합니다. –

2

필자는 Infralution License Tracker를 사용합니다. Payware이지만 일부 응용 프로그램 또는 모든 응용 프로그램의 라이센스를 허용합니다. 또한 온라인 검증에 대한 핵심 검증을 허용합니다. 고객 정보를 사용하여 키를 생성 할 수 있으므로 대상 컴퓨터의 정보를 사용하여 등록 할 수 있어야합니다. 당신은 정말 쉽게 당신이 LimeLM을 사용할 수 원하는

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

0

. 평가판 옵션을 통한 간단한 온라인 확인.

4

사용자가 두 대 이상의 컴퓨터에서 응용 프로그램을 실행하지 못하도록하는 산업 표준 방식은 실제로 해당 시스템의 일부 매개 변수로 제품을 잠그는 것입니다. 그러나 향후 작업을 피하거나 고객을 혼란에 빠뜨리려면 다음과 같은 문제에 대해 생각해 봐야합니다. 이러한 문제를 처리하지 않는 원유 시스템은 노드 잠금 나쁜 이름을 부여하지만, 눈에 거슬리지 유연 잠금 노드와 보안을 제대로 할 때 한 : 당신이 잠 깁니다 정확하게 시스템 매개 변수를 얻을 것이다 어떻게

  • 을 에?사용자에게 읽기/입력을 요청하는 것은 오류의 일반적인 원인입니다 (예 : '1'을 'l'로 잘못 읽거나 '0'을 읽음).
  • MAC 주소는 일반적으로 노드 잠금에 사용되지만 이는 많은 운영 체제에서 관리자가 MAC 주소를 설정할 수 있으므로 좋지 않은 선택입니다.
  • 라이센스를 시스템의 여러 매개 변수에 고정한다고 가정 해 보겠습니다. 사용자가 마이너 시스템 업그레이드를 수행하여 그 중 하나가 변경되는 경우 어떻게됩니까? 갑자기 앱 실행을 거부하면 앱이 만족스럽지 않습니다.
  • 사용자는 어느 시점에서 다른 컴퓨터로 라이센스를 이동하려고합니다. 보안 구멍을 만들지 않고 어떻게 지원하는지 생각해야합니다.
  • 사용자 컴퓨터가 다운됩니다. 새로운/재건 된 시스템에서 어떻게 라이센스를 다시 실행할 수 있습니까?

Google 솔루션에서 직면하고 처리 한 몇 가지 문제가 있습니다. 희망이 도움이됩니다.

0

이를 방지하려면 컴퓨터 잠금/활성화 된 라이센스를 사용해야합니다. 이렇게하면 라이선스가 단일 컴퓨터에서만 유효하다는 것을 확인할 수 있습니다. 라이선스 유효성 검사가 실패하면 앱을 종료할지, 사용자에게 메시지를 표시할지 여부, 유예 기간 허용 여부 등을 결정할 수 있습니다.

활성화/컴퓨터 잠금 라이센스를 지원하는 CryptoLicensing을 시도하십시오.

면책 조항 : 저는 CryptoLicensing의 개발자 인 LogicNP Software에서 근무합니다.