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.
Sitenin tüm takma adlarını almak için 'SiteDomainAliasInfoProvider' özelliğini kullanabilirsiniz ... aradığınız şey bu mu? – rocky
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. –
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