Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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#_File_Locking - Fatal编程技术网

C# 防止删除和更改文件

C# 防止删除和更改文件,c#,file,locking,C#,File,Locking,我有一个文本文件。我需要进行以下操作: 1.防止删除文件。 2.防止对文件进行更改。 即使程序没有运行。这可能吗?可能通过使用该服务? 应用程序的用户可以向文件中添加新数据 常规:我需要防止删除我的文件和进行任何更改(在我的应用程序之外)。 谢谢。这将是您对文件权限所做的事情。在文件安全设置中,您可以设置谁可以删除文件、谁可以修改文件等。您可以让应用程序提升其权限以修改文件 如果应用程序未运行,则无法保护文件本身。将应用程序作为服务运行将允许它保持运行,这将允许它对文件执行一些保护操作,但是您需


我有一个文本文件。我需要进行以下操作:
1.防止删除文件。
2.防止对文件进行更改。
即使程序没有运行。这可能吗?可能通过使用该服务?
应用程序的用户可以向文件中添加新数据

常规:我需要防止删除我的文件和进行任何更改(在我的应用程序之外)。

谢谢。

这将是您对文件权限所做的事情。在文件安全设置中,您可以设置谁可以删除文件、谁可以修改文件等。您可以让应用程序提升其权限以修改文件


如果应用程序未运行,则无法保护文件本身。将应用程序作为服务运行将允许它保持运行,这将允许它对文件执行一些保护操作,但是您需要第二个应用程序来与用户交互,并且您还将执行操作系统的工作。提升C#应用程序内部的权限比尝试通过代码执行操作要容易得多。

这将是使用文件权限执行的操作。在文件安全设置中,您可以设置谁可以删除文件、谁可以修改文件等。您可以让应用程序提升其权限以修改文件


如果应用程序未运行,则无法保护文件本身。将应用程序作为服务运行将允许它保持运行,这将允许它对文件执行一些保护操作,但是您需要第二个应用程序来与用户交互,并且您还将执行操作系统的工作。提升C#应用程序内部的权限比尝试通过代码执行操作要容易得多。

您可以使用Windows RBS来确保文件只能由管理员和您的程序创建的特定系统用户修改或删除,并且只能在该上下文中运行


永远不要阻止管理员访问文件;您将从应用程序的用户那里发现七个级别的地狱,他们无法删除这一个文件(因此无法删除安装文件夹)卸载应用程序时。

您可以使用Windows RBS确保文件只能由管理员和您的程序创建的特定系统用户修改或删除,并且只能在该上下文中运行


永远不要阻止管理员访问文件;你将从应用程序的用户那里得到七个级别的地狱,他们在卸载应用程序时无法删除这一文件(因此无法删除安装文件夹)。

这难道不被视为病毒吗?如果一个程序创建了一个没有人可以删除的文件,这不是一个编程问题。你不能通过编写程序或Windows服务来解决这个问题。相反,您可以通过使用组策略和其他安全设置来解决此问题。Windows提供了对这类东西的开箱即用支持,远没有您自己可以实现的任何东西那么脆弱。问一些关于你的系统的问题。这不是你的系统,而是其他人的,他们决定自己的系统。您只能将ACL分配给文件,但用户始终可以使用管理权限删除该文件。为什么需要阻止对文件进行更改?您的问题缺少最重要的部分。阻止谁删除该文件?这是一个安全问题,但您忽略了威胁和攻击者。另外,请记住:您的应用程序代表您的用户运行。用户负责;应用程序是他们的仆人,而不是他们的主人。如果你的用户想销毁你的文件,那是他们的事;让他们来吧。机器是他们的,不是你的。请尽量避免用一句话回答这样的问题。显然,我问过的文件如果被更改会发生什么,它仍然会被找到,除非更改是它被删除了。但是,如果更改是其中一个哈希值发生了更改,因此您将无法使用哈希值对文件进行寻址,那么是的。但是,您仍然不能也不应该尝试阻止对文件进行修改。对内容进行加密怎么样?这将使做出有效的改变变得困难。这难道不被认为是一种病毒吗?如果一个程序创建了一个没有人可以删除的文件,这不是一个编程问题。你不能通过编写程序或Windows服务来解决这个问题。相反,您可以通过使用组策略和其他安全设置来解决此问题。Windows提供了对这类东西的开箱即用支持,远没有您自己可以实现的任何东西那么脆弱。问一些关于你的系统的问题。这不是你的系统,而是其他人的,他们决定自己的系统。您只能将ACL分配给文件,但用户始终可以使用管理权限删除该文件。为什么需要阻止对文件进行更改?您的问题缺少最重要的部分。阻止谁删除该文件?这是一个安全问题,但您忽略了威胁和攻击者。另外,请记住:您的应用程序代表您的用户运行。用户负责;应用程序是他们的仆人,而不是他们的主人。如果你的用户想销毁你的文件,那是他们的事;让他们来吧。机器是他们的,不是你的。请尽量避免用一句话回答这样的问题。显然,我问过的文件如果被更改会发生什么,它仍然会被找到,除非更改是它被删除了。但是,如果更改是其中一个哈希值发生了更改,因此您将无法使用哈希值对文件进行寻址,那么是的。但是,您仍然不能也不应该尝试阻止对文件进行修改。对内容进行加密怎么样?这将使做出有效的更改变得困难。这只是部分正确。无论权限设置如何,特权用户(管理员、超级用户)都可以删除该文件。但是,如果您创建了一个服务以确保在删除时替换该文件,则会出现相同的问题