我有一个应用程序,我希望用户能够将 SQL/Server 备份到他们的主目录。由于 SQL 在网络服务帐户下运行,因此在尝试备份时会出现文件系统权限错误。我尝试了以下代码和一些变体来尝试完全控制网络帐户:
Public Sub GiveFolderNetworkAccess(FilePath As String)
Dim SID As SecurityIdentifier = New SecurityIdentifier(WellKnownSidType.NetworkServiceSid, Nothing)
Dim FolderInfo As IO.DirectoryInfo = New IO.DirectoryInfo(FilePath)
Dim FolderAcl As New DirectorySecurity
FolderAcl.AddAccessRule(New FileSystemAccessRule(SID, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit Or InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow))
FolderInfo.SetAccessControl(FolderAcl)
End Sub
但是,在调用 FolderInfo.SetAccessControl 时出现 System.UnauthorizedAccessException 异常。我还在非 Windows 路径上尝试了代码,用户可以完全控制并获得相同的结果。任何想法表示赞赏,我目前正在 Windows 7 和 .NET Framework 4 下进行测试。