2013-03-26 2 views
3

지금 우리는 작은 Windows 기반 응용 프로그램을 개발 중입니다. 우리는 30 일의 기간 동안 평가판 사용권을 제공하고 30 일이 지나면 제품을 사용할 수 없게됩니다.최상의 해결 방법 날짜 시간 라이센스 문제

은 시험 기간이 끝날 것 다운로드 2월 1일 1월 1일에 의해 응용 프로그램을 설치 클라이언트를 상상해 :

지금 여기 내 문제입니다. 이제 1 월 31 일에 시스템 시간을 1 월 1 일로 다시 변경하면 시스템이 처음부터 계산되기 시작하므로 클라이언트는 단순히 시스템 시간 만 변경하여 시험 기간을 연장 할 수 있습니다.

커뮤니티 권장 사항에 따라 인터넷/날짜 시간을 확인할 수 있지만 작은 우려로 서버를 통해 임의로 라이센스를 확인할 수는 없으며 사용자 이 오프라인으로 전환되어으로 변경되고 시스템 날짜가 변경되면, 그러면 문제가 다시 발생할 것입니다. 이 문제를 해결할 다른 방법이 있습니까?

나는 이미 this question을 확인했습니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 이 제품은 C# 응용 프로그램입니다.

+1

인터넷에 액세스 할 수 있습니까? 그렇다면 인터넷 시간 서버에 갈 수 있습니다. –

+5

마지막으로 응용 프로그램을 연 파일을 저장할 수 없습니까? 그런 다음 응용 프로그램이 다음에 열릴 때 시계가 변경되었음을 감지 할 수 있습니다. 물론 사용자가 잠시 동안 시간을 ​​변경할 수 있도록해야하지만 여러 번 수행하면 응용 프로그램의 사용을 금지 할 수 있습니다. – foens

+0

인터넷을 사용하는 경우 인터넷 시간 서버를 사용하고 다른 옵션은 regedit를 사용하고 폴더를 만들고 설치/만료/최종 실행 날짜/시간 설정 및 응용 프로그램 실행시 날짜 확인 –

답변

5

아마 가장 좋은 해결책은 라이선스 세부 정보 확인을위한 온라인 서버를 갖는 것입니다. 응용 프로그램이 클라이언트 시스템의 데이터에 종속되도록하는 경우 항상 파손될 가능성이 있습니다. 하지만 귀하의 고객은 인터넷에 접속할 수 있어야합니다.

6

요구 사항에 따라 온라인 서버에서 날짜를 확인할 수 없습니다. 이것은 오프라인 시스템에서 매우 분명합니다.

그래서, 당신은 몇 가지를 할 필요가 -

  1. 높은 encypted 데이터의 형태로 등록 날짜와 expirydate를 설정하고 레지스트리 데이터베이스에 어딘가에 저장합니다.

  2. 응용 프로그램이 매번 열리는 동안 최신 시계 날짜를 가져 와서 암호화 된 데이터를 레지스트리에 저장하십시오.

  3. 시계 날짜와 마지막 사용 날짜를 확인하십시오. 마지막으로 <을 usagedate하면 ​​clockdate가 좋지만 usagedate> clockdate이면 사용자가 시계 날짜를 변경했습니다. 따라서 레지스트리를 업데이트하지 마십시오.

  4. lastusagedate가 만료일에 도달하면 "Your Trial has expired."라는 메시지가 나타납니다.

희망이 있습니다.

건배