Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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#_.net_Winforms_Class Library - Fatal编程技术网

C# 如何在运行时在类库中存储永久数据

C# 如何在运行时在类库中存储永久数据,c#,.net,winforms,class-library,C#,.net,Winforms,Class Library,我的动机是使用Properties.Settings.Default.variable将值存储在类库中,就像我们在win表单应用程序中一样。为什么我希望使用类库而不是应用程序来存储它,因为我不希望应用程序开发人员访问或操作运行时生成的安全信息。我用的是c# 我怎样才能实现我的动机?类库是我的第一个热门,打开它也可以使用任何其他解决方案 我不能使用数据库,因为在我的场景中,数据库是本地的,用户和应用程序开发人员可以访问 我制作了一个电信设备,我想让我的库验证硬件是由我们仅使用IMEI号码发布的。我

我的动机是使用
Properties.Settings.Default.variable
将值存储在类库中,就像我们在win表单应用程序中一样。为什么我希望使用类库而不是应用程序来存储它,因为我不希望应用程序开发人员访问或操作运行时生成的安全信息。我用的是c#

我怎样才能实现我的动机?类库是我的第一个热门,打开它也可以使用任何其他解决方案

我不能使用数据库,因为在我的场景中,数据库是本地的,用户和应用程序开发人员可以访问


我制作了一个电信设备,我想让我的库验证硬件是由我们仅使用IMEI号码发布的。我的应用程序在脱机模式下工作,因此为此,我将发送包含IMEI号码和接收端验证IMEI号码的短信。验证后,接收端返回验证响应。在用户端,若设备在收到响应后未经验证,则类库应停止工作

库项目不应有需要在运行时修改的配置文件,因此您可以使用以下方法: 1-将所有配置保持在win form应用程序级别,并将信息传递到调用库的任何位置。或 2-将配置保存到普通xml文件(使用默认的AppSettings类替换为app.config)。加密xml文件或文件中的信息以确保其安全


有更多的选项(例如,将设置保存在winform project app.config文件中,并使用OpenMapdexeConfiguration从lib项目中打开并读取)。但最灵活和安全的方法是使用带有加密/解密的自定义xml文件。

您无法实现所述目标。客户机上的任何数据都可以由该客户机的用户访问和破解。至少在个人电脑上,如果没有其他东西的话,他们可以附加一个调试器并一直单步执行解密代码。在过去的生活中,我在一家公司工作,该公司使用硬件加密狗作为拷贝保护,黑客会调试我们的代码,找到对加密狗的调用,然后将其删除


您需要对应用程序进行建模,假设客户端计算机上的任何数据都完全归该计算机的用户所有。

为什么不将其存储在数据库中?因为应用程序开发人员可以访问数据库如何写入注册表?您的类库不也是本地的吗?数据/安全信息是什么?这是什么?此数据的位置有哪些限制?是加密的吗?是R/W还是R/O?ACL/权限是否足以保护它?等等,没有足够的信息来做推荐,我也不是安全专家。