可能重复:
Where and how should I save license related information?我应该在哪里存储许可证文件?
我为了向用户分发创建为我的应用许可文件。但我不知道应该在哪里存储许可证文件在用户计算机中。
有什么建议吗? 谢谢
可能重复:
Where and how should I save license related information?我应该在哪里存储许可证文件?
我为了向用户分发创建为我的应用许可文件。但我不知道应该在哪里存储许可证文件在用户计算机中。
有什么建议吗? 谢谢
如果授权是每个用户,请将其存储在%APPDATA%
目录中。如果它是每台计算机许可证,请将其存储在%PROGRAMDATA%
目录或程序的安装目录中。
%APPDATA%
是一个shell变量(可以通过在命令窗口中键入set
查看它们)指向在当前用户的应用程序数据应当被存储的目录。它通常是类似C:\Users\MyUser\AppData\Roaming
。当指定打开文件的路径时,可以直接使用%APPDATA%
变量,例如, %APPDATA%\MyCompany\LicenseFile.dat
。正如@cdhowie在他的评论中指出的那样,使用.NET Environment.GetFolderPath()
函数比使用环境变量更好。
%PROGRAMDATA%
以同样的方式工作,但映射到系统上所有用户都通用的目录。
Anders,也许你可以简单地解释一下%APPDATA%和%PROGRAMDATA%的含义,因为不是每个人都知道你指的是什么。 –
@Charles:这是个好主意。完成。 –
因为这是C#的标签,所以使用'Environment.GetFolderPath()'可能比环境变量更合适。 – cdhowie
以加密注册表项的形式存储许可证可以是另一种选择。 对于每台计算机许可证,将密钥存储在HKLM \ Software 和每用户许可证中,将密钥存储在HKCU \ Software
我应该将包含加密数据的许可证存储到注册表项中吗?你知道注册表键可以存储多大的数据吗? –
将授权信息存储为加密数据是最好的方法,因为没有人能够理解数据,因此无法修补它。有关您对注册表项限制的问题,请参阅以下链接http://msdn.microsoft.com/en-us/library/ms724872(v=vs.85).aspx –
为什么不在应用程序文件夹中? 您可以在安装结束时显示它。 –