gpt4 book ai didi

c# - 利用 Kentico 的许可来许可自定义模块

转载 作者:太空狗 更新时间:2023-10-29 21:43:51 26 4
gpt4 key购买 nike

我们开发了一个 Kentico 模块,我们希望在每个站点的基础上获得许可。

有没有其他人试图为此目的利用内置的 Kentico 许可?

我的想法是在我们的服务器上设置一个安全端点,以验证运行该模块的 Kentico 站点的域/许可证。

例如如果我们的服务器中不存在域/许可证,则该模块将不会为该站点运行。

这可行吗?

最佳答案

我想我可能已经弄明白了。

在我的模块中,我重写了 CheckLicense 方法:

    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;
}

然后我可以使用:

ModuleManager.CheckModuleLicense("My.Module.Name", RequestContext.CurrentDomain, FeatureEnum.Unknown, ObjectActionEnum.Read)

关于确保模块获得适当许可的功能。

方法覆盖是一种简化,我对外部服务请求实现了缓存,以防止每次我们要检查权限时都必须查询服务。

我还发送了 licenseKey.Domain,因为我们不关心别名,只要主域获得许可,模块就可以在任何别名下工作。

这种方法看起来如何?非常感谢任何做过此类事情的人的反馈,以及选择的解决方案是什么?

谢谢,

关于c# - 利用 Kentico 的许可来许可自定义模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33922610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com