私はこれを考え出したかもしれないと思います。
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;
}
をそして私は使用することができます:私のモジュールで
は私のようなCheckLicenseメソッドをオーバーライドしまし
ModuleManager.CheckModuleLicense("My.Module.Name", RequestContext.CurrentDomain, FeatureEnum.Unknown, ObjectActionEnum.Read)
機能のモジュールが適切にライセンスされていることを確認します。
メソッドオーバーライドは単純化されています。私は、外部サービス要求にキャッシュを実装して、アクセス許可をチェックするたびにサービスを照会する必要がないようにしました。
メインドメインにライセンスが与えられている限り、エイリアスは気にしないので、私はlicenseKey.Domainも送信します。
このアプローチはどのように見えますか?ソートの何かをしたことのある人からのフィードバックは本当にありがたいでしょうか?解決策を選んだのは何ですか?
ありがとう、 p。
'SiteDomainAliasInfoProvider'を使ってサイトのすべてのエイリアスを取得することができます。探しているものは? – rocky
エイリアスやテスト/開発ライセンスとは無関係に、実際にはかなり重大なことですが、Kenticoが発行したメインライセンスのドメインを探しています。 –
どのような情報がありますか?私は 'SiteInfoProvider'、' SiteDomainAliasInfoProvider'と 'LicenseKeyInfoProvider'を組み合わせることで、利用可能なサイトID、ドメイン名、またはドメインエイリアスがあるかどうかにかかわらず情報を取得できるはずだと思います。 – rocky