2010-03-21 3 views
0

우리는 사용자 정의 라이센스 메커니즘을 사용하여 라이센스가 부여 된 응용 프로그램 (.NET Framework 3.5에서 C#으로 작성)을 보유하고 있습니다. 현재 구현에서는 각 메소드에서 시스템이 유효한 라이센스를 가지고 있는지 여부를 먼저 확인합니다. 나에게 그것은 약간 어색하다. 객체를 생성하거나 메소드를 실행하기 전에 런타임에서 라이센스를 확인하도록 할 수있는 방법이 있습니까? 맞춤 속성을 작성하면이 문제가 해결됩니까?라이센스 실행 전 확인

모든 아이디어 나 해결책을 높이 평가합니다.

+0

각 메소드 호출의 시작 부분에서 라이센스를 확인합니다 (등록 정보는 결국 메소드로 컴파일됩니다). 실행 파일이 처음 실행될 때 한 번만 확인하는 것이 좋습니다. 프로그램이 실행되는 동안 라이선스가 무효화되거나 변조 될 위험이 있습니까? – FrustratedWithFormsDesigner

+2

@ FrustratedWithFormsDesigner 나는 이것이 어셈블리를 패치하는 사람들이 라이센스 검사 코드를 건너 뛰지 않도록하기위한 것이라고 생각합니다. 어셈블리의 이름을 강하게하면 훼손된 버전이 실행되는 것을 막을 수 있지만 주변에 방법이 있는지 확실하지 않습니다. –

+0

답변 해 주셔서 감사합니다. 내 제품이 WCF 서버이고 일부 서비스에는 라이센스가 필요하며 일부 서비스에는 라이센스가 필요하지 않습니다. 따라서 서비스가 라이센스를 필요로 할 때마다 라이센스를 확인합니다. 클래스를 꾸미기 위해 사용자 지정 보안 특성이 있다고 생각합니다. 그게 효과가 있니? – jaklucky

답변

1

어쩌면 정적 생성자는 당신이

0

당신은 main 방법/정적 생성자에서 확인할 수 있습니다 도움이 될 것입니다, 감사 수레 쉬.

라이선스가 맞지 않는 경우 (라이선스가 1 년이고 다시 시작하지 않고도 몇 년 동안 실행될 수있는 서버 - Windows에서는 가능하지 않지만 여전히 가능함) AOP이 원하는 것인지 확인하십시오. 이는 직접적인 일대일 리팩토링 (훨씬 더 깨끗한) 일 것입니다.

0

아마 코드를 가져올 때 그 사람이 유효한 라이센스를 가지고 있는지 확인할 수 있습니다. 적절한 라이선스가 있으면 라이브러리를 해독합니다.

관련 문제