2015-11-25 16 views
6

Opracowaliśmy moduł Kentico, który chcielibyśmy licencjonować na podstawie witryny.Wykorzystaj licencję Kentico na licencjonowanie niestandardowego modułu

Czy ktoś jeszcze próbował wykorzystać do tego celu wbudowaną licencję Kentico?

Mam na myśli bezpieczny punkt końcowy na naszym serwerze, który zweryfikowałby domenę/licencję strony Kentico, na której działa moduł.

E.g. Jeśli domena/licencja nie istnieje na naszych serwerach, moduł nie będzie działał dla tej witryny.

Czy to możliwe?

Odpowiedz

4

Myślę, że mogłem wymyślić ten jeden.

Na moim module mam nadpisane metody CheckLicense jako takie:

public override bool CheckLicense(string domain, FeatureEnum feature, ObjectActionEnum action) 
    { 
     if (domain != null) 
      domain = LicenseKeyInfoProvider.ParseDomainName(domain); 

     int siteId = LicenseHelper.GetSiteIDbyDomain(domain); 
     var licenseKey = LicenseKeyInfoProvider.GetLicenseKeyInfo(domain, FeatureEnum.Unknown); 
     if (siteId > 0 && licenseKey != null) 
     { 
      // TODO: query external service with licenseKey.Domain for a valid license for this module 
      return true; 
     } 

     return false; 
    } 

A potem mogę użyć:

ModuleManager.CheckModuleLicense("My.Module.Name", RequestContext.CurrentDomain, FeatureEnum.Unknown, ObjectActionEnum.Read) 

od funkcji, aby zapewnić moduł jest poprawnie licencjonowana.

Zastąpienie metody jest uproszczeniem, zaimplementowałem buforowanie w żądaniach usług zewnętrznych, aby zapobiec konieczności wysyłania zapytań do usługi za każdym razem, gdy chcemy sprawdzić uprawnienia.

Wysyłam również licenseKey.Domain, ponieważ nie dbamy o aliasy, o ile główna domena jest licencjonowana, moduł powinien działać pod dowolnymi aliasami.

Jak to wygląda? Czy naprawdę doceniłbyś każdą opinię od kogoś, kto zrobił coś w tym rodzaju, i jakie było rozwiązanie?

Dzięki, p.

+0

Możesz użyć 'SiteDomainAliasInfoProvider', aby uzyskać wszystkie aliasy strony ... czy tego szukasz? – rocky

+0

Właściwie całkiem przeciwnie, szukam domeny głównej licencji wydanej przez Kentico, bez względu na aliasy czy licencje test/development. –

+0

A jakie informacje są dostępne? Myślę, że łącząc "SiteInfoProvider", "SiteDomainAliasInfoProvider" i "LicenseKeyInfoProvider", powinieneś być w stanie pobrać informacje niezależnie od tego, czy masz identyfikator witryny, nazwę domeny lub alias domeny. – rocky

Powiązane problemy