gpt4 book ai didi

c# - 将 “Everyone” 权限添加到文件夹的网络共享

转载 作者:行者123 更新时间:2023-11-30 16:25:15 24 4
gpt4 key购买 nike

注意:请不要因为标题与他人相似而无视。

我正在尝试在 Windows 7 计算机上共享文件夹。我想通过 C# 向每个人授予对它的完全权限。

我在其他页面(包括此处)上看过几篇文章,它们告诉您如何去做。但像其他一些人一样,它对我不起作用。以下是摘自 SO 的片段.

    DirectorySecurity sec = Directory.GetAccessControl(path);
// Using this instead of the "Everyone" string means we work on non-English systems.
SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
sec.AddAccessRule(new FileSystemAccessRule(everyone, FileSystemRights.FullControl | FileSystemRights.Synchronize, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow));
Directory.SetAccessControl(path, sec);

在我调用上面的代码之前共享文件夹已经完成。下面的图片是我得到的结果:

enter image description here

到目前为止,还不错。但在下一张图片中,您会看到剩下的两个复选框仍未选中。

enter image description here

请问我错过了什么?

谢谢!

编辑:下面是用于进行实际共享的代码。

    private static void QshareFolder(string FolderPath, string ShareName, string Description)
{
try
{
ManagementClass managementClass = new ManagementClass("Win32_Share");
ManagementBaseObject inParams = managementClass.GetMethodParameters("Create");
ManagementBaseObject outParams;

inParams["Description"] = Description;
inParams["Name"] = ShareName;
inParams["Path"] = FolderPath;
inParams["MaximumAllowed"] = null;
inParams["Password"] = null;
inParams["Access"] = null;
inParams["Type"] = 0x0; // Disk Drive

// Invoke the method on the ManagementClass object
outParams = managementClass.InvokeMethod("Create", inParams, null);

// Check to see if the method invocation was successful
if ((uint) (outParams.Properties["ReturnValue"].Value) != 0)
{
throw new Exception("Unable to share directory.");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "error!");
}
}

最佳答案

共享和基础文件夹的权限是分开的 - 您的代码在文件/文件夹上设置 ACL...因此您缺少在网络共享本身上设置 ACL 的部分。

当最终通过共享访问文件时,文件权限和共享权限之间的最小值。

我不知道如何在共享上设置 ACL,但这里有一个相关的 C++ 问题,可能是关于如何设置共享权限的很好起点:How to create read-only network share programmatically? .

关于c# - 将 “Everyone” 权限添加到文件夹的网络共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10129624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com