c#应用程序关闭时是否可以释放许可证密钥?

时间:2014-03-10 13:29:02

标签: c# licensing

我正在构建一个C#应用程序。我使用许可证密钥将应用程序发送给客户端。他们必须使用该密钥登录。现在没有其他人可以使用该密钥。但现在我想知道当客户端关闭应用程序时是否有可能再次释放许可证密钥。这样其他人就可以使用相同的密钥来使用该应用程序。这可能吗?

3 个答案:

答案 0 :(得分:0)

你永远不能指望一个优雅地退出的程序。它可能会丢失网络访问,电源或导致程序异常终止的硬件问题,从而导致孤立的许可证。

因此,如果您这样做,您需要确保有办法超时许可证。

请记住:我说,“如果。”我必须管理一个完全正确的应用程序,我可以告诉你,这是用户方面的痛苦。 “异常终止”发生的次数比您想象的要多得多,而且我的用户总是需要等待许可超时。这不是一个好的用户体验。考虑一下最近一些试图推出“永远在线”DRM的视频游戏的所有骚动......这与你提出的非常相似,并且在大多数情况下,游戏发行商最终放弃了要求。

答案 1 :(得分:0)

  

但是现在我想知道当客户端关闭应用程序许可证时是否可能   密钥再次发布。

是。通过“编程”。不过,这是一个破碎的概念,因为如果他们当时没有互联网怎么办?或机器崩溃?

答案 2 :(得分:0)

假设您正在使用TcpClient / TcpListener基础结构来发送有关许可证密钥身份验证的信息:

有两种方法可以实现这一目标:

  1. 在服务器上捕获SocketException以关闭套接字并从池中释放密钥。
  2. 如果在一分钟内没有收到心跳,则每20秒发送一次“心跳”,并将密钥发送到服务器,从池中释放密钥。
  3. 它将处理所有情况,如:连接丢失,断电等......