Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储许可证详细信息_C#_Licensing - Fatal编程技术网

C# 存储许可证详细信息

C# 存储许可证详细信息,c#,licensing,C#,Licensing,我对许可证有疑问。我正在使用C#应用程序。 脚本: 用户通过邮件以文件的形式获取应用程序的许可证。他/她将许可证文件存储在桌面上。稍后,他/她选择许可证并单击注册。现在该应用程序已注册(许可)。 几天后,如果用户从桌面删除许可证文件。由于没有文件,应用程序将停止工作。 我想将许可证详细信息存储在注册表或文件(秘密路径)中的某个位置。但是 如果该用户帐户没有足够的权限读取/写入注册表或文件,该怎么办。 哪种方法好?你们知道其他的方法吗? 我是这方面的新手。所以请帮帮我 提前感谢。所有应用程序数据都

我对许可证有疑问。我正在使用C#应用程序。 脚本: 用户通过邮件以文件的形式获取应用程序的许可证。他/她将许可证文件存储在桌面上。稍后,他/她选择许可证并单击注册。现在该应用程序已注册(许可)。 几天后,如果用户从桌面删除许可证文件。由于没有文件,应用程序将停止工作。 我想将许可证详细信息存储在注册表或文件(秘密路径)中的某个位置。但是 如果该用户帐户没有足够的权限读取/写入注册表或文件,该怎么办。 哪种方法好?你们知道其他的方法吗? 我是这方面的新手。所以请帮帮我


提前感谢。

所有应用程序数据都应存储在%appdata%目录中

由于您指定了C#,下面是获取文件夹的代码:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
这将输出到以下位置: 在XP:C中:/Documents and Settings/用户名/应用程序数据/ 在Vista中:C:/Users/username/AppData/Roaming


我建议您在该目录中为您的应用程序创建一个文件夹并复制到那里。

正如一些人不久前告诉我的那样:“注册表用于应用程序与系统的交互,而不是应用程序与用户的交互。”我不知道这是否是正确的查看方式。我过去也在注册表中存储用户信息,但现在不再是了。将设置放入文件是更好的方法。如果您想存储序列号之类的东西,请不要忘记对它们进行加密。

当然,在这种情况下,应该避免写入注册表,特别是如果许可证可以按照您描述的方式删除、添加或更改。如果要在安装后以某种方式交换或更改许可证,最好将其写入文件。不过,我通常不建议将任何类型的关键文件或数据写入桌面。我可能会将其写入包含在应用程序本身目录中的文件夹中。如果有必要,请将其包括在应用程序安装中。

Microsoft对中的存储位置有一些建议

因此,如果它[您的程序]一直在更改共享数据(而不是代码),那么它[数据]应该在逻辑上进入ProgramData文件夹。如果是单个数据,则可以转到用户配置文件


我们使用许可证文件并将其存储在ProgramData\CompanyName文件夹中。但我们的许可证是基于每台机器,而不是每用户。默认情况下,此文件夹隐藏在Windows中,但不受UAC保护。

如果您计划让多个用户(在同一台计算机上)使用您的软件,则应将许可证放在“所有用户”目录(在XP上),以便C:/Documents and Settings/All users/Application Data/.ie Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);根据最初的问题,我认为许可证已经是一个文件。此外,在应用程序安装目录中写入通常不是一个好主意。由于UAC,您在Vista/7中没有对它的写入权限,因为应用程序应该只写入用户的appdata目录。正是如此!如上所述,在C#by中可以访问:Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);