0

我正在编写一个 C#/WPF 业务应用程序,它需要(除其他外)重新组织一些媒体文件(音频、视频和图像文件)。应用程序还必须在当前用户的安全上下文中运行,因此具有与他们相同的访问权限。

该应用程序将成为可以访问媒体的一个地方,以阻止对文件进行任何未经授权的访问。我最初的想法是将媒体组织在只读文件夹中,并使用具有适当权限的服务将文件移动到只读文件夹中。

实际应用程序将无权将文件移动到只读文件夹,因为它共享当前用户的权限,而当前用户不能访问该文件夹。

起初,我查看了一个 Windows 服务,但认为与它进行通信设置起来太痛苦了。因此,我正在使用 WCF 服务,但是虽然服务设置有效,但拥有一个只有一种方法“MoveFile”的服务似乎有点浪费......应用程序(和用户)仍然可以从文件夹中读取,只是不写它。

将文件移动到 .NET 中的只读文件夹是否有更好的解决方案?例如,是否可以在将文件移动到只读文件夹时让应用程序的一部分作为单独的用户运行?

4

2 回答 2

0

如果当前用户正在运行应用程序,那么应用程序应该具有相同的权限。您无需移动到只读文件夹即可绕过安全性。如果当前用户没有适当的权限,您可能必须捕获诸如 UnauthorizedAccessException 之类的异常。

您是否测试过读取具有不同访问级别的目录和文件以查看它是否自动工作?

于 2013-02-18T18:08:43.733 回答
0

您是否尝试过模拟从主应用程序中移动文件的过程?您可以使用:WindowsIdentity.Impersonate 方法

于 2013-02-19T09:51:08.340 回答