2010-03-21 44 views
0

我们有一个应用程序(使用.NET Framework 3.5编写的C#),使用我们的自定义许可机制进行许可。在目前的实施中,在每种方法中,我们首先检查机器是否具有有效许可证。对我来说,这有点尴尬。在创建对象或执行方法之前,有什么办法让运行时检查许可证吗?编写一个自定义属性会解决这个问题吗?执行前的许可证检查

任何想法或解决方案,非常感谢。

谢谢 苏雷什

+0

你在每一个方法调用开始时检查一个许可证(属性是什么?那些被编译为方法毕竟)。为什么不在可执行文件首次启动时只检查一次?在程序运行时,真的有执照无效或被篡改的风险吗? – FrustratedWithFormsDesigner 2010-03-21 00:25:23

+2

@FrustratedWithFormsDesigner我认为这是为了防止修补程序集的人跳过许可证检查代码。强烈地命名一个程序集应该可以防止被篡改的版本运行,但我不确定是否有解决方法。 – 2010-03-21 00:33:23

+0

谢谢你的答案。我的产品是WCF服务器,有些服务需要许可证,有些服务则不需要。因此,无论服务需要许可证,我们都会检查许可证。我正在考虑有一个自定义安全属性来装饰类。这会工作吗? – jaklucky 2010-03-21 16:24:34

回答

1

也许静态构造函数会帮助你

0

您可以在main方法/静态构造函数检查。

如果它不适合你(许可证是年份,它是一个可以运行多年而无需重新启动的服务器 - 不太可能用于Windows,但仍有可能)检查是否AOP不是您想要的。这将是一个直接的一对一重构(无论多么干净)。

0

也许您可以检查以确保该人在导入代码时拥有有效的许可证。比方说,当有适当的许可证时,它会解密这些库。