我正在查看 .NET 应用程序的一些应用程序要求,它指定应用程序只能在授权机器和授权用户上运行。这是一个内部业务应用程序,因此它不完全是许可问题,但也许这仍然是一种有效的方法。而不是重新发明轮子,我想我会问这种事情已经有什么可用的。就授权用户而言,我认为应用程序可以在启动期间进行管理,是吗?
问问题
88 次
2 回答
1
基于有限信息的建议:
- 在带有 AD-STS + WIF/Claims 的 AD 环境中使用 Kerberos 在启动时断言
- 使用没有 AD 的 STS+WIF/Claims
- 保留用户及其权限的数据库,并在启动时通过授权服务进行检查
于 2012-04-21T16:39:06.513 回答
0
将有关计算机的某些详细信息(例如 MAC 和 CPU 品牌和型号,以及主板的品牌)保存在与应用程序一起分发的文件中。您可以使用 RSA 对文件进行签名以防止其被篡改,您只需将公钥与应用程序一起分发。
假设您使用活动目录,以确保用户名是唯一的(以防止人们在其计算机上创建具有相同名称的帐户并在绕过用户检查时登录),您可以存储授权用户名列表并再次签名与 RSA。
当应用程序启动时,首先检查文件的 RSA 签名以检查它们的完整性。然后首先检查机器是否被授权。然后检查用户是否被授权。您应该独立检查代码中的 2 个或多个点,以防止在一处篡改验证。
于 2012-04-21T19:55:33.097 回答