如何验证 C# WPF 应用程序中每个菜单项的许可证

Posted

技术标签:

【中文标题】如何验证 C# WPF 应用程序中每个菜单项的许可证【英文标题】:How to verify License for each Menu Item in C# WPF Application 【发布时间】:2017-06-01 06:58:55 【问题描述】:

我在 WPF C# 中创建了一个应用程序,并通过 Dotfuscator 进行了混淆。现在我想为我的供应商提供许可证密钥。我的应用程序中有四个菜单,每个菜单都有单独的成本。所以我需要为每个菜单提供单独的许可证密钥来验证它。

我在 Google 中搜索过,但它仅显示整个应用程序的单个许可证密钥。任何人都可以发送一些链接或想法。

【问题讨论】:

【参考方案1】:

您所说的不是任何应用程序的默认行为,因此您不会找到开箱即用的解决方案。

执行此类操作的现代方式是基于帐户,您有一个用户帐户,该帐户记录用户购买的内容,然后您的应用连接到您的服务器并下载其活动权限。

然后,您将使用许可证密钥来确保每个帐户使用的应用程序副本不超过他们拥有的许可证密钥

【讨论】:

【参考方案2】:

您所说的通常称为“功能许可”,您可以在其中许可应用程序的各个功能,而不是使用单个许可来许可所有功能。每个用户都有一组与其用户帐户相关联的许可证;许可证集取决于他们从您那里购买的功能。

在您的代码中,登录后,您可以验证每个用户的许可证,以确定允许和不允许他们使用哪些功能。例如,这里有一些伪代码:

features = 
  FEATURE_X: false,
  FEATURE_Y: false,
  FEATURE_Z: false


for license in licenses
  switch license.policy
  case 'FEATURE_X'
    features.FEATURE_X = license.is_valid()
  case 'FEATURE_Y'
    features.FEATURE_Y = license.is_valid()
  case 'FEATURE_Z'
    features.FEATURE_Y = license.is_valid()

# Later in your software:

if features.FEATURE_X
  # … let the user do X
else
  # … don't let them

我构建了a software licensing API,这使得这种类型的许可模型比过去更容易管理。使用我的服务 Keygen,您可以创建代表您个人功能的不同许可证类型(策略),例如“功能 X”、“菜单项 Y”等。

Keygen 还提供用户管理功能,因此将多个许可证与单个用户关联起来,就像对于这种特定的许可模型一样,轻而易举。

【讨论】:

以上是关于如何验证 C# WPF 应用程序中每个菜单项的许可证的主要内容,如果未能解决你的问题,请参考以下文章

WPF 根据指定条件显示或禁止listView中的每一项的右键菜单

WPF中用代码创建菜单时,给菜单项的Icon赋值的语句是啥?

如何显示菜单项的工作键盘快捷键?

C# wpf 中某个菜单如何隐藏啊

C# wpf 中某个菜单如何隐藏啊

如何将单选按钮添加到菜单项?