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.
Możesz użyć 'SiteDomainAliasInfoProvider', aby uzyskać wszystkie aliasy strony ... czy tego szukasz? – rocky
Właściwie całkiem przeciwnie, szukam domeny głównej licencji wydanej przez Kentico, bez względu na aliasy czy licencje test/development. –
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