2010-11-29 105 views
2

假設你有一個有一堆不同的模塊,它如一個網站:授權模塊

  • 會計學(處理客戶,發票等)
  • Notes和文件(創建和管理文檔)
  • 還有更多的..

你會如何限制訪問「模塊」如果客戶沒有之一適當的許可?

我經常看到一個帶有.lic文件的組件,您如何生成其中的一個?

如果您使用類似的方法會影響性能嗎?

編輯

另一件事我在想,如果你出貨的所有模塊與應用程序,你只需要證明你已獲得許可的控制,你需要檢查每個控制的有效性還是可以的你以某種方式提取這些信息?

回答

1

要做到這一點,有一個位陣列,其中每個標誌對應於特定的模塊或功能的一種方法。在生成許可證時,根據客戶購買的模塊設置位陣列,然後使用RSA等算法對該位陣列進行簽名。然後,在您的軟件中,驗證簽名並檢索位數組以確定要激活哪些模塊。

看看CryptoLicensing,它支持這種情況 - 您可以在每個生成的許可證中指定最多2040個功能/模塊。

+0

有趣的是,你有關於如何使用CryptoLicensing或任何其他類似的東西的文檔建議嗎? – 2010-11-30 10:09:55

+0

請參閱http://www.ssware.com/cryptolicensing/demo/features_net.htm您可以從網站下載試用版 - 試用版隨附文檔。 – logicnp 2010-11-30 10:41:56

4

您可以使用現有的開源解決方案之一,以生成和驗證許可文件包括有關允許模塊/功能的信息:

Boths工具允許你將附加數據存儲到許可證文件 - >在你的情況下允許的模塊。

使用Portable.Licensing解決方案,您可以使用產品功能或附加許可數據添加允許的模塊:

var license = License.New() 
    //... other options 
    .WithProductFeatures(new Dictionary<string, string> 
           { 
            {"Accouting", "yes"}, 
            {"Notes and Documents", "yes"} 
           }) 
    // ... other options 
    .CreateAndSignWithPrivateKey(privateKey, passPhrase); 

要驗證模塊:

if (license.ProductFeatures.Contains("Accouting")) 
    // ... 

免責聲明:我的作者Portable.Licensing開源項目項目編號