Tôi nghĩ rằng tôi có thể đã tìm ra điều này.
On mô-đun của tôi, tôi đã overriden phương pháp CheckLicense như vậy:
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;
}
Và sau đó tôi có thể sử dụng:
ModuleManager.CheckModuleLicense("My.Module.Name", RequestContext.CurrentDomain, FeatureEnum.Unknown, ObjectActionEnum.Read)
Trên các tính năng để đảm bảo các mô-đun được cấp phép đúng cách.
Ghi đè phương pháp là đơn giản hóa, tôi đã triển khai bộ nhớ đệm trên các yêu cầu dịch vụ bên ngoài, để tránh phải truy vấn dịch vụ mỗi lần chúng tôi muốn kiểm tra quyền.
Tôi cũng gửi licenseKey.Domain vì chúng tôi không quan tâm đến bí danh, miễn là tên miền chính được cấp phép, mô-đun sẽ hoạt động dưới bất kỳ bí danh nào.
Cách tiếp cận này trông như thế nào? Có thực sự đánh giá cao bất kỳ phản hồi nào từ bất kỳ ai đã thực hiện điều gì đó sắp xếp và giải pháp được chọn tham gia không?
Xin cảm ơn, p.
Nguồn
2015-11-25 19:32:11
Bạn có thể sử dụng 'SiteDomainAliasInfoProvider' để nhận tất cả bí danh của trang web ... là những gì bạn đang tìm kiếm? – rocky
Trên thực tế khá mờ, im tìm kiếm tên miền của giấy phép chính do Kentico cấp, bất kể bí danh hoặc giấy phép thử nghiệm/phát triển. –
Và bạn có sẵn thông tin gì? Tôi nghĩ rằng bằng cách kết hợp 'SiteInfoProvider',' SiteDomainAliasInfoProvider' và 'LicenseKeyInfoProvider', bạn sẽ có thể truy xuất thông tin bất kể bạn có id trang web, tên miền hoặc bí danh miền có sẵn hay không. – rocky