标签: file-security

文件共享无法按预期工作

我有一个文件共享问题,我的进程正在尝试读取日志文件,而它当前仍由NLog打开.在诊断问题时,我发现了令人惊讶的事情.以下失败:

using (var fileStream1 = new FileStream("test.file", FileMode.Append, FileAccess.Write, FileShare.Read))
using (var fileStream2 = new FileStream("test.file", FileMode.Open, FileAccess.Read, FileShare.Read))
{
}
Run Code Online (Sandbox Code Playgroud)

第二个FileStream构造函数调用失败:

System.IO.IOException was unhandled
  Message=The process cannot access the file 'c:\...\test.file' because it is being used by another process.
  Source=mscorlib
  StackTrace:
       at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
       at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess …
Run Code Online (Sandbox Code Playgroud)

.net c# file-sharing file-security

14
推荐指数
1
解决办法
6408
查看次数

取得文件的所有权c#

我试图获取文件的所有权并通过C#删除它.该文件是iexplorer.exe,默认为当前所有者 - TrustedInstaller.FileSecurity.SetOwner方法似乎设置了指定的所有权,但实际上并没有更改初始所有者并且不会抛出任何异常.显然,下一次删除文件的尝试会引发异常.在代码中应该更改什么来获取文件的所有权并将其删除?

var fileS = File.GetAccessControl(@"C:\Program Files (x86)\Internet Explorer\iexplore.exe");
fileS.SetOwner(new System.Security.Principal.NTAccount(Environment.UserDomainName, Environment.UserName));
File.Delete(@"C:\Program Files (x86)\Internet Explorer\iexplore.exe");
Run Code Online (Sandbox Code Playgroud)

c# io file file-security

7
推荐指数
1
解决办法
8758
查看次数

如何在不托管文件的情况下安全地链接到ColdFusion应用程序中的文件?

我正在ColdFusion中构建一个应用程序作为我工作的一部分.此应用程序基本上创建问题的票证.在共享网络驱动器上,存在与票证号码对应的文件夹,其中包含与该票证有关的文件.

但是,有两种不同类型的用户:第一种用户创建票证并可以访问共享驱动器上的所有这些文件,第二种用户只能访问与其所包含的票证相关的文件/ CC打开了.这些文件包含敏感信息,因此不能在第二类用户之间共享它们,并且它们也不能拥有可以导航到其他文件夹等的完整路径.

这让我想到了下一个问题,这些文件在很多情况下非常大,所以我的老板不想把它们放在我们自己的任何服务器上(托管我们的应用程序等),他也不想让我甚至暂时复制它们到我们的服务器允许下载这些文件,然后删除它们,因为他称之为"延迟".

所以在这一点上,我正在寻找如何制作特定于票号的文件的选项,仅供某些人使用.这可以通过ColdFusion应用程序以链接方式完成,也可以通过更改文件夹和共享驱动器本身的某些结构来完成.有没有人有一个可以用于此的好方法?

如果有什么不清楚的地方,我很抱歉,只是问一下,我会尽力澄清.

coldfusion network-drive file-security filepath

5
推荐指数
1
解决办法
69
查看次数

为所有用户设置 c:\program files\company\app\file 的文件权限

我有一个运行良好的自定义安装程序,但每次更新应用程序时它都会要求用户提供管理员权限。我正在创建一个跳过这部分的 Windows 服务,但 Windows 服务仅授予该文件的系统和管理员权限,并且用户无法执行新的更新。

为了纠正这个问题,我正在尝试(在文件下载/安装到正确的位置之后(从 Windows 服务中,它具有帐户 ServiceAccount.LocalSystem),

FileSecurity access = file.GetAccessControl();
SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
access.AddAccessRule(new FileSystemAccessRule(everyone, FileSystemRights.ReadAndExecute, AccessControlType.Allow));
Run Code Online (Sandbox Code Playgroud)

但设置不生效。从这里我应该做什么?

c# windows-services file-security

3
推荐指数
1
解决办法
5630
查看次数