2015-11-25 13 views
6

Chúng tôi đã phát triển một mô-đun Kentico mà chúng tôi muốn cấp phép trên cơ sở mỗi trang web.Sử dụng giấy phép của Kentico để cấp phép mô-đun tùy chỉnh

Có ai khác đã cố gắng tận dụng Giấy phép Kentico trong xây dựng cho mục đích này không?

Điều tôi đang nghĩ đến là có điểm kết thúc an toàn trên máy chủ của chúng tôi để xác thực tên miền/giấy phép của trang web Kentico đang chạy mô-đun.

Ví dụ: Nếu tên miền/giấy phép không tồn tại trong máy chủ của chúng tôi thì mô-đun sẽ không chạy cho trang web.

Điều này có khả thi không?

Trả lời

4

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.

+0

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

+0

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. –

+0

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

Các vấn đề liên quan