2009-05-16 2 views
0

나는 응용 프로그램 (C#)이 있으며 간단한 라이센스 체계가 있어야한다. 그렇게하는 동안 사용량을 제한하기 위해 해당 정보를 컴퓨터의 어딘가에 저장해야합니다.라이센스 관련 정보를 어디에서 어떻게 저장해야합니까?

날짜와 카운터를 저장해야합니다.

Windows Vista에서 관리 권한이 필요하지 않은 정보를 어떻게, 어디에서 저장해야합니까? (즉, System32, Program Files, HKEY_LOCAL_MACHINE에 저장하는 것은 옵션이 아닙니다.)

"하지 마세요"또는 "어쨌든 금이 갈 것"으로 응답을 범람하지 마십시오. 나는 그 논리를 이해한다. 나는이 목적을 위해 할 수있는 최선을 다할 필요가 있습니다.

답변

4

XHEO과 같은 타사 라이센스 구성 요소를 사용해보십시오. 휠을 다시 만들 필요가 없습니다.

여전히 고유 한 라이센스 시스템을 작성해야하는 경우 사용자 프로필 디렉토리 또는 HKEY_CURRENT_USER 분기를 사용해보십시오.

+1

한 장점 도난 당할 수있는 보안을 통해 축구화는 "자신의 롤". 너무 오래 걸리지 않고 요구 사항을 충족한다면 괜찮을 것입니다. –

+0

그런 일은 겉으로보기에는 단순하지만 시간이 많이 걸리는 것보다 더 자주 시작됩니다. 대신 핵심 기능에 집중하고 타사 시스템을 대신 사용하려고합니다.고려해야 할 그러한 시스템 중 하나가 CryptoLicensing입니다. – logicnp

0

기업용 우리는 항상 app_root/LICENSE 디렉토리를 사용합니다.

우리는 또한 고유 한 사용자 지정 솔루션을 사용하지만이 데이터를 암호화하고 라이센스 로그에서 조작을 확인하는 것은 간단합니다.

4

우리는 서명 된 XML 라이센스 파일을 사용합니다. 이 파일은 사용자가 구입 한 내용을 표시하는 간단한 XML 파일입니다.

이것에 대한 좋은 점은 미래의 호환성이라는 것입니다. 제품 기능 또는 제품 라인, 만료 날짜 및 기능 속성을 쉽게 추가 할 수 있습니다.

우리의 상업 사이트에서 주문형 라이센스를 만들고 패키지화하는 것은 쉽습니다. 개인 키가 절대로 나오지 않도록하십시오. 우리를 위해 여기에 찬성하는 찬성론과 우리가 우회 할 수없는 가장 큰 문제는 라이센스 파일을 단순히 대처하는 것입니다. 여기

은 샘플 XML 파일

<?xml version="1.0" encoding="utf-8"?> 
<ProductName> 
    <License> 
    <LicenseId>20025fb9-5349-46d4-a530-55b0295beaaa</LicenseId> 
    <CustomerName>[email protected]</CustomerName> 
    <MajorVersion>2008</MajorVersion> 
    <Product>Friendly Display Name</Product> 
    <ProductType>Enterprise</ProductType> 
    <Features> 
     <!--Add features here--> 
    </Features> 
    <Expires>0001-01-01T00:00:00</Expires> 
    </License> 
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> 
    <SignedInfo> 
     <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> 
     <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> 
     <Reference URI=""> 
     <Transforms> 
      <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> 
     </Transforms> 
     <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> 
     <DigestValue>u3{..........}U2jo=</DigestValue> 
     </Reference> 
    </SignedInfo> 
    <SignatureValue>QFg1kI{...............}DwDIE=</SignatureValue> 
    </Signature> 
</ProductName> 

입니다 그리고 우리는 간단한 API 년대 XML 서명을 할 수있는 내장 .NET, 그것은 불똥이 튄 및 유효 확인을 사용합니다.

내가 좋아하는 것 ...

.. 읽기 쉽습니다. (기술 지원) .. 쉽게 대체 할 수 있습니다. .. 파일 시스템이나 우리의 경우에는 데이터베이스에 저장하기 쉽고 UI에 쉽게 액세스 할 수 있습니다. (우리는 적절한 업데이트/업그레이드 시스템을 가지고 있습니다.) .. 업그레이드가 쉽습니다. 우리는 귀하의 구 라이센스를 취하는 서비스를 보유하고 있으며, 검증 후, 이미 구매 한 것에 근거한 업그레이드 가격을 제공합니다. 그런 다음 상거래 시스템은 참조 용으로 이전 및 새 라이센스 파일을 기록합니다. 내가 좋아하지 않는

상황은 ...

은 ..에 복사 쉽게

+1

개선 할 수있는 방법 중 하나는 라이센스에 하드웨어 파생 ID를 저장하고 서명하는 것입니다. – ASk