Ich denke, ich habe das herausgefunden.
Auf meinem Modul habe ich die CheckLicense Methode als solche außer Kraft gesetzt:
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;
}
Und dann kann ich verwenden:
ModuleManager.CheckModuleLicense("My.Module.Name", RequestContext.CurrentDomain, FeatureEnum.Unknown, ObjectActionEnum.Read)
Auf den Funktionen des Moduls zu gewährleisten ordnungsgemäß lizenziert ist.
Die Methodenüberschreibung ist eine Vereinfachung, ich habe Caching für die externen Dienstanforderungen implementiert, um zu verhindern, dass der Dienst jedes Mal abgefragt werden muss, wenn wir nach Berechtigungen suchen möchten.
Ich sende auch die licenseKey.Domain, weil uns Aliase egal sind, solange die Hauptdomain lizensiert ist, sollte das Modul unter beliebigen Aliasen funktionieren.
Wie sieht dieser Ansatz aus? Würde ich wirklich jedes Feedback von jemandem schätzen, der etwas in der Art gemacht hat, und was war die gewählte Lösung?
Danke, p.
Sie können 'SiteDomainAliasInfoProvider' verwenden, um alle Aliase einer Site zu erhalten ... ist das wonach Sie suchen? – rocky
Eigentlich ganz anders, ich suche nach der Domain der von Kentico vergebenen Hauptlizenz, unabhängig von Alias- oder Test-/Entwicklungslizenzen. –
Und welche Informationen haben Sie verfügbar? Ich denke, durch die Kombination von 'SiteInfoProvider',' SiteDomainAliasInfoProvider' und 'LicenseKeyInfoProvider' sollten Sie die Informationen unabhängig davon abrufen können, ob Sie eine Site-ID, einen Domain-Namen oder einen Domain-Alias zur Verfügung haben. – rocky