Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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# 防止用户更改Spring连接文件_C#_Visual Studio_Configuration Files_Spring.net - Fatal编程技术网

C# 防止用户更改Spring连接文件

C# 防止用户更改Spring连接文件,c#,visual-studio,configuration-files,spring.net,C#,Visual Studio,Configuration Files,Spring.net,我正在使用Spring.Net和Windows窗体开发一个应用程序。我想阻止用户更改Spring配置文件,比如将配置文件设置为只读。我阅读了Spring.Net文档,但什么也没找到,我查看了visual studio,但没有找到如何将文件设置为只读。我发现的唯一一件事是加密app.config文件,它正在工作,但不阻止用户更改。 你有什么想法吗?真的阻止改变是很难做到的 但通常情况下,它应该足以识别它是否已被改变。。。为了实现这一点,您基本上需要实施以下方案的一些变化: 创建文件的散列(与sa

我正在使用Spring.Net和Windows窗体开发一个应用程序。我想阻止用户更改Spring配置文件,比如将配置文件设置为只读。我阅读了Spring.Net文档,但什么也没找到,我查看了visual studio,但没有找到如何将文件设置为只读。我发现的唯一一件事是加密app.config文件,它正在工作,但不阻止用户更改。
你有什么想法吗?

真的阻止改变是很难做到的

但通常情况下,它应该足以识别它是否已被改变。。。为了实现这一点,您基本上需要实施以下方案的一些变化:

  • 创建文件的散列(与salt一起)
  • 将该值存储在app.config中
  • 在应用程序中,读取文件并重新计算该散列(使用相同的散列)
  • 如果该值与app.config中的值匹配,则一切正常,否则该值已更改,您需要采取适当的操作
要进一步采取上述措施:

您可以将文件的副本作为“嵌入资源”嵌入到应用程序(EXE/DLL)中,并在启动时用该资源的内容替换磁盘上的文件-这样可以确保文件始终符合应用程序的要求


免责声明:上述方案不会阻止真正坚定的“攻击者/黑客…”。

非常感谢@Yahia,我实现了您的解决方案。