2011-08-07 84 views

回答

3

如果授权是每个用户,请将其存储在%APPDATA%目录中。如果它是每台计算机许可证,请将其存储在%PROGRAMDATA%目录或程序的安装目录中。

%APPDATA%是一个shell变量(可以通过在命令窗口中键入set查看它们)指向在当前用户的应用程序数据应当被存储的目录。它通常是类似C:\Users\MyUser\AppData\Roaming。当指定打开文件的路径时,可以直接使用%APPDATA%变量,例如, %APPDATA%\MyCompany\LicenseFile.dat。正如@cdhowie在他的评论中指出的那样,使用.NET Environment.GetFolderPath()函数比使用环境变量更好。

%PROGRAMDATA%以同样的方式工作,但映射到系统上所有用户都通用的目录。

+1

Anders,也许你可以简单地解释一下%APPDATA%和%PROGRAMDATA%的含义,因为不是每个人都知道你指的是什么。 –

+0

@Charles:这是个好主意。完成。 –

+3

因为这是C#的标签,所以使用'Environment.GetFolderPath()'可能比环境变量更合适。 – cdhowie

1

以加密注册表项的形式存储许可证可以是另一种选择。 对于每台计算机许可证,将密钥存储在HKLM \ Software 和每用户许可证中,将密钥存储在HKCU \ Software

+0

我应该将包含加密数据的许可证存储到注册表项中吗?你知道注册表键可以存储多大的数据吗? –

+0

将授权信息存储为加密数据是最好的方法,因为没有人能够理解数据,因此无法修补它。有关您对注册表项限制的问题,请参阅以下链接http://msdn.microsoft.com/en-us/library/ms724872(v=vs.85).aspx –

相关问题