许可 WPF、Silverlight 和 WP7 程序集

2024-02-14

我正在寻找一种解决方案来许可 WPF、Silverlight 和 WP7 程序集。所讨论的程序集是一个图表控件,它具有可跨平台使用的单个 API。我正在为每个平台(WPF、SL、WP7)创建一个单独的 MSI,用户可以下载并安装。这将在其 GAC 中注册程序集以供开发使用。

我想做的是确保单个开发许可证仅由单个开发人员使用。它不必非常安全,足以阻止潜在的黑客即可。理想情况下,覆盖所有三个平台的解决方案将是有益的。

我已经有了一个令我非常满意的跨平台混淆器。可惜这不包括许可!

Edit:额外的要求是,我将允许用户下载自购买之日起最多一年的更新,但是他们购买的组件将无限期地可供他们使用,无论他们是否更新。程序集将被重新分发,因此任何许可模型都必须可在 WPF/SL/WP7 平台上重新分发。

欢迎您提出建议/意见。

此致,


对于您对许可方法“将“完成工作”并防止低级许可证滥用”的要求,我个人建议不要太花哨;也就是说,避免使用网络激活/维护的许可。我的建议与概述的方法类似here https://stackoverflow.com/questions/8907751/how-to-license-my-c-sharp-application/8908329#8908329.

  1. 使用上面链接中所述的 .NET 库之一选择对称加密算法。
  2. 使用随机生成器创建所需的加密密钥(如果您联系我,我很乐意分享我开发的一段代码,用于为任何所需的密钥大小生成各种随机字符串/密钥),还有 .NET 类可以帮助您通过生成伪随机数自己完成此操作(RNGCryptoServiceProvider).
  3. 转换/“自定义哈希”密钥以提供新的“哈希加密密钥”。
  4. 使用此密钥生成初始化向量 (IV) 并加密您的许可证文件。

现在如何部署应用程序(就许可而言)取决于您。以下两种方法适用于上述所有三种应用程序类型,并将为每种产品的许可提供一定程度的一致性。上述方法使用两个文件进行许可。 “ProductKey.myExtension”和“LicenceFile.myOtherExtension”。第一个包含随机生成的密钥,它将以与许可证生成器应用程序相同的方式进行“散列”/转换(您将需要一个单独的(小)应用程序来“剪切”/创建许可证文件)。第二个是包含用户信息、许可期限等的加密文件。

答:您现在可以为您的应用程序提供一个安装包,该安装包会将您的应用程序安装在相关目录(即 C:\Pogram Files 等)中,而无需提供许可证文件,在这种情况下,您可以使用许可证安装程序部署许可证文件。然后可以使用“Environment.SpecialFolder”为每个用户单独安装许可证,以确保每个用户都有自己的许可证(当然,这假设“管理员”首先为所有用户安装了该应用程序,并且许可证安装包将在逐个用户的基础上运行)。注意:我目前不熟悉 WP7 应用程序以及本例中的具体情况。

B. 第二种方式是允许个人用户安装应用程序,并在安装应用程序时安装相关的许可证文件。

经过一段时间的广泛研究后,我已经使用这种方法部署了多个 WinForm 应用程序,并且它似乎运行良好。我希望这有一些帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

许可 WPF、Silverlight 和 WP7 程序集 的相关文章

随机推荐

  • 避免在数据表中呈现“表中没有可用数据”

    我正在使用 JQuery 数据表 当表格呈现时 它显示为 表格中没有可用数据 一段时间后表格开始显示数据 并且 没有可用数据 消失 我不希望出现 没有可用数据 相反 如果出现 正在加载 或 请稍候 之类的内容 那就太好了 或者没有任何东西可
  • 当鼠标离开JQuery时停止.hover动画

    我有类似的东西 test hover function this animate function this animate 但如果用户的鼠标在动画结束之前离开 动画将继续 如果我快速重复地快速悬停和取消悬停元素 则动画会在鼠标离开元素后重
  • 从 3 个点检索正角或负角

    我正在围绕二维空间中的中心点旋转点 这些点是中心点 旧鼠标位置和新鼠标位置 我的旋转功能运行良好 我可以完美地计算角度 但如果用户沿应解释为逆时针方向移动鼠标 我想计算负角度 例如 如果您位于 小于 中心点的 y 值之上 小于 则向右 正
  • window、window.top 和 window.parent 之间有什么区别?

    我刚刚注意到top window and parent变量给了我相同的值 我正在 gmail 收件箱页面对此进行测试 有人知道这三个值有什么区别吗 如果您在框架内 window指当前帧 parent指的是当前框架的父级 top指最外层框架
  • 元音子序列

    我在准备面试时在网站上发现了这个问题 字符串的神奇子序列S是一个子序列S那 按顺序包含所有五个元音 查找字符串的最大神奇子序列的长度S 例如 如果S aeeiooua then aeiou and aeeioou是神奇的子序列 但aeio
  • 将 TIMESTAMP 列更新为可为空

    我有一个表存在于两个数据库中 在一个数据库中有一个表 其中有一列称为ROW VERSION这是类型TIMESTAMP NOT NULL 在第二个数据库中 同一个表具有相同类型的列TIMESTAMP但它是类型TIMESTAMP NULL 我想
  • 活动图 定时事件

    我正在尝试建模以下内容 填写提交表单时 系统每 5 分钟自动保存一次用户进度 这是我尝试过的 但我认为这是不正确的 就我而言 仅在 填写提交 活动完成后才会询问条件 另外 我不想表明用户正在再次开始 填写提交 活动 您将使用由虚线框表示的可
  • 具有多个连接的 ActiveRecord 查询无法识别关系

    我正在尝试编写一个 ActiveRecord 查询 使用以下查询返回注册特定课程的所有学生 def self students enrolled in course id Student joins enrollments joins se
  • .net 控制台应用程序 32 位与 64 位

    NET 中的应用程序是否需要构建为 64 位才能充分利用具有 64 位操作系统的计算机 或者它是否会像 32 位构建一样利用它 基本上 我们遇到了内存不足异常的问题 建议在 64 位机器上运行控制台应用程序 这 可能 解决该问题 问题是我们
  • 使用 Spring Security + Spring data + MongoDB 进行身份验证

    我想将 Spring security 与 MongoDB 结合使用 使用 Spring 数据 并从我自己的数据库中检索用户以实现 spring security 但是 我不能这样做 因为我的用户服务类型似乎不受支持 这是我的 UserSe
  • pip (python2) 和 pip3 (python3) 可以共存吗?

    我一直认为 pip 适用于 Python 2 pip3 适用于 Python 3 为了安装不同版本的 pip 我执行了以下操作 sudo apt get install python pip sudo apt get install pyt
  • PHP json_decode 有单引号问题,但没有双引号问题

    通过示例最容易解释 var dump json decode a b c d e f NULL var dump json decode a b c d e f array 3 0 gt object stdClass 1 1 a gt s
  • 如何在svg中动态设置坐标点

    我正在尝试使用 SVG 创建一个三角形 我这样做是按照tutorial http tutorials jenkov com svg polygon element html 但问题是坐标是硬编码的 在画布中 我通过从 javascript
  • 成员表达式无法从可为空的十进制转换为对象

    我正在开发一个 MVC 项目 并希望向 Html TextboxFor 方法传递属性名称 这是我的视图模型 public class RuleViewModel
  • AngularJS - 调用 Flickr API 失败并显示警告消息

    我有一个简单的 AngularJS 应用程序 允许用户搜索 Flickr 照片 问题出在 IE 中 当我调用 Flickr API 时 我收到以下消息 此页面正在访问不受其控制的信息 这会带来安全风险 你想继续吗 如果我单击 是 应用程序就
  • 如何在不使用 TableViewController 的情况下创建分组 TableView

    我有一个 UITableView 我希望它有 2 个部分 我现在知道 如果您使用 UITableViewController 并且使用静态单元格 则只能拥有分组部分 而我都不是 我想做的可能吗 如果是这样 我可以在哪里寻求设置方面的帮助 似
  • org.springframework.batch.item.ReaderNotOpenException:阅读器必须先打开才能读取

    我正在使用 Spring Batch 来运行 从数据库表读取并写入另一个表 作业 该作业是由 Quartz 调度的 数据库是 oracle 它是 c3p0 我遇到了 reader not open 异常 这是工作背景
  • sequelize/sequelize-typescript - findAll 与 HasMany 返回一个对象而不是数组

    我正在尝试使用sequelize typescript 建立一对多关系 但是当我尝试获取数据时 许多关系返回给我一个对象而不是数组 我有两张桌子 球队和球员 团队可以有很多玩家 一个玩家属于一个团队 我的模型 Table export cl
  • 防止 OSX 版 Safari 中的捏合/缩放

    我有一个带有多个视口的 html5 应用程序 我打算使用 HammerJS 在各个视口上提供捏合 缩放手势 目前 每当我捏住 Safari OSX 时 整个窗口就会放大或缩小 我想防止这种情况发生 对于 iOS 这有效 但它并不能阻止 OS
  • 许可 WPF、Silverlight 和 WP7 程序集

    我正在寻找一种解决方案来许可 WPF Silverlight 和 WP7 程序集 所讨论的程序集是一个图表控件 它具有可跨平台使用的单个 API 我正在为每个平台 WPF SL WP7 创建一个单独的 MSI 用户可以下载并安装 这将在其