.NET 下制作 Shareware 的关键技术探讨一:Licensing
March 3rd, 2005
制作 Shareware 有三个关键点:
- å¦‚ä½•ä¿æŠ¤å¯¹è±¡(程åº),在创建对象的时候检测许å¯è¯ (License)。
- åŠ å¯†/解密 用户信æ¯å’Œæ³¨å†Œä¿¡æ¯ã€‚
- 程åºåŠ æ‰° (obfuscate) 或者程åºåŠ å¯†ï¼Œåç ´è§£ã€‚
.NET 为å‰ä¸¤è€…æä¾›äº†åŸºæœ¬æ”¯æŒï¼Œéžå¸¸æ–¹ä¾¿ã€‚这里先说检测许å¯è¯ã€‚许å¯è¯å¯ä»¥æœ‰é€šç”¨æ³¨å†Œç ã€éªŒè¯ç”¨æˆ·å的注册ç ã€éªŒè¯ç”¨æˆ·æœºå™¨çš„æ³¨å†Œç ç‰å½¢å¼ã€‚当用户花钱è´ä¹°äº† Shareware 程åºï¼ŒShareware ç¨‹åºæ‹¥æœ‰è€…就会å‘逿³¨å†Œç 给用户。(Share-It 有在线注册ç 生æˆåŠŸèƒ½ï¼Œä¸€æ”¶åˆ°é’±ç«‹å³è‡ªåŠ¨ç”Ÿæˆæ³¨å†Œç )。
Shareware 程åºè¿è¡Œæ—¶è¦æ£€æµ‹å’ŒéªŒè¯ç”¨æˆ·æ˜¯å¦å…·æœ‰æœ‰æ•ˆçš„æ³¨å†Œç ,以决定用户是å¦èƒ½æ‰§è¡Œç¨‹åºã€‚
.NET 下的程åºéƒ½æ˜¯é¢å‘对象的,所以 .NET 在对象的创建机制上,æä¾›äº†è®¸å¯è¯æ£€æµ‹çš„一个接å£ï¼ŒShareware 程åºå¼€å‘å¯ä»¥åœ¨æ¤åŸºç¡€ä¸ŠåŠ å…¥è‡ªå·±çš„æ³¨å†Œç 验è¯ç®—法。
.NET Licensing 一文介ç»äº†è®¸å¯è¯æ£€æµ‹çš„办法:
[LicenseProviderAttribute(typeof(LicFileLicenseProvider))]
public class LicensedClass : IDisposable
{
private License license = null;
public LicensedClass()
{
license = LicenseManager.Validate(typeof(LicensedClass), this);
Console.WriteLine(“Hello from the licensed class.”);
}
public void Dispose()
{
if (license != null)
{
license.Dispose();
license = null;
}
}
}
有了这么个结构,程åºå¼€å‘å¯ä»¥æŠŠæ£€æµ‹è®¸å¯è¯äº¤ç”± .NET 完æˆï¼Œè€Œè‡ªå·±é›†ä¸ç²¾åŠ›è®¾è®¡å¦‚ä½•éªŒè¯æ³¨å†Œç 。把上é¢çš„ LicFileLicenseProvider æ¢æˆè‡ªå·±çš„ Custom LicenseProvider。比如,ä¸è¯»æ–‡ä»¶è€ŒåŽ»è¯»æ³¨å†Œè¡¨ï¼Œè§ï¼šCodeGuru: Licensed Applications using the .NET Framework ã€‚æˆ‘çš„ä¸€äº›æ–‡ç« æ”¶è— (RSSæ ¼å¼) 。
ä¸è®ºæ˜¯ä»Žæ–‡ä»¶æˆ–者从注册表得到注册ç ,它包å«äº†æˆ·æ˜¯å¦å¯ä»¥è¿è¡Œç¨‹åºçš„ä¿¡æ¯ï¼Œè€Œä¸”它一定是åªèƒ½ Shareware ç¨‹åºæ‹¥æœ‰è€…è¯´äº†ç®—ã€‚å› æ¤è¿™ä¸ªä¿¡æ¯æ˜¯å¿…é¡»åŠ å¯†çš„ã€‚
.NET æä¾›äº†éžå¯¹ç§°åР坆 (Asymmetric Cryptography) 工具å¯ä»¥ç”¨æ¥å¤„ç†æ³¨å†Œç ã€‚ä¸‹ä¸€ç¯‡æ–‡ç« é‡Œç»§ç»ä»‹ç»ã€‚
Entry Filed under: Programming, WB Editor
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed