2015-11-25 13 views
6

Site bazında lisanslamak istediğimiz bir Kentico modülü geliştirdik.Leverage Kentico'nun lisanslama özel modülüne lisans vermek için

Bu amaçla yerleşik bir Kentico Lisansı'ndan yararlanan başka biri var mı?

Düşündüğüm, sunucumuzda modülü çalıştıran Kentico sitesinin etki alanını/lisansını doğrulayacak güvenli bir son noktaya sahip olmak.

E.g. Domain/lisans sunucularımızda mevcut değilse, modül site için yayınlanmayacaktır.

Bu uygulanabilir mi?

cevap

4

Sanırım bunu anlayabilirim.

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; 
    } 

Sonra kullanabilirsiniz:: Modülümde Açık

ben gibi CheckLicense yöntemini overriden ettik

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

özellikleri üzerinde modül düzgün lisanslı sağlamak için.

Yöntem geçersiz kılma basitleştirilmiştir, izinleri kontrol etmek istediğimizde hizmeti sorgulamak zorunda kalmamak için, dış servis isteklerinde önbelleğe alma işlemini uyguladık.

Ayrıca, ana alan lisanslı olduğu sürece, takma adlar umurumda değil çünkü takma adlar umurumda olmadığı için, lisansKey.Domain de gönderiyoruz modül herhangi bir takma adı altında çalışmalıdır.

Bu yaklaşım nasıl görünüyor? Bu türden bir şey yapan herhangi birinden geri bildirim almaktan gerçekten memnun olur muydunuz ve çözüm için neyin tercih edildi?

Teşekkürler, p.

+0

Sitenin tüm takma adlarını almak için 'SiteDomainAliasInfoProvider' özelliğini kullanabilirsiniz ... aradığınız şey bu mu? – rocky

+0

Aslına bakılırsa, aslına bakarsanız ya da test/geliştirme lisanslarından bağımsız olarak, Kentico tarafından verilen ana lisansın alanını arıyorum. –

+0

Ve hangi bilgilerin var? SiteInfoProvider, SiteDomainAliasInfoProvider ve LicenseKeyInfoProvider işlevlerini birleştirerek site kimliği, alan adı veya alan takma adı olup olmadığına bakılmaksızın bilgileri almanız gerektiğini düşünüyorum. – rocky

İlgili konular