我正在尝试创建一个类似于文件夹锁定的程序,以防止用户访问特定文件夹。我尝试使用 DirectorySecurity 类和 AccessRules 来更改文件夹的 AccessControl。
但是,可以通过转到“安全选项卡”并更改权限来轻松更改我分配的设置。
是否有任何安全的方法来防止访问目录?
我正在尝试创建一个类似于文件夹锁定的程序,以防止用户访问特定文件夹。我尝试使用 DirectorySecurity 类和 AccessRules 来更改文件夹的 AccessControl。
但是,可以通过转到“安全选项卡”并更改权限来轻松更改我分配的设置。
是否有任何安全的方法来防止访问目录?
我想我对这个问题的回答是:“我怎样才能防止使用 Windows 服务创建文件夹? ” 可能是你需要做的事情来实现你想要的:
不幸的是,我不知道如何帮助您,但我相当确定您需要编写或获取可以与您的 Windows 服务通信的文件系统过滤器驱动程序,以告诉它有人有试图创建一个目录/文件,以便您的服务可以为它做出决定。这样,当某人/某物尝试创建不允许的文件或文件夹时,他们可能会返回“拒绝访问”或您选择的另一个 Win32 错误。
如果你确实走上了使用驱动程序的路线,我想最好还是做繁重的工作来决定是否在服务中创建/修改,即在内核模式之外。
只要用户是目录或文件的所有者,他就可以更改权限。您必须更改目录的所有权才能真正保护目录(并且更改所有权需要管理权限)。但是具有管理员权限的用户始终可以收回所有权。
如果您在企业中并且人们不是他们机器的管理员,您可以编写一个以域管理员身份运行并进行所需更改的 Windows 服务。在家庭环境中,没有办法。
有两件事可以推翻本地管理员的权限。
但是第二个选项你不能用 c# 做,第一个选项更多的是 Active Directory 配置解决方案。
不,您不能阻止计算机管理员帐户访问或取得任何文件夹的所有权。
您可以阻止受限帐户(如您所述),但管理员将始终能够更改安全设置。