c# - Using UNC path to retrieve a folder's groups and users -
i have been set task allow user enter unc path (i.e. \\bla.org.dom\temp\test\lowest) , lowest folder highest, construct list of groups , users have read/write permissions on each folder. have spent quite time looking @ activedirectory services , have turned nothing dead ends. whilst have quite grasp of c# activedirectory , ldap seems go on head. suggestions of material read on welcomed.
as first post, criticism on question format welcome!
edit: given further research using directory security method's, , accessrules, have gotten stage can recursively call list of account names. close need i'm finding harder implement call on unc path.
the answer lied within directoryinfo , directorysecurity namespaces. using information provided earlier checking-for-directory-and-file-write-permissions-in-net managed create recursively calling method generates list of users/groups have read/write on folders, starting @ top , working down lowest directory.
string dir = ""; if (input.text.contains(@"\\")) { dir += @"\\"; } string[] folders = input.text.split(new char[] { '\\', '/' }, stringsplitoptions.removeemptyentries); foreach (string folder in folders) { if (dir.contains(@"\\") && folder == folders[0]) { dir += folder + @"\"; } else { dir += folder + @"\"; resultgroup newbox = new resultgroup(folder); newbox.label1.click += (x, y) => { splitcontainer1.panel2collapsed = false; listbox1.items.add(newbox.label1.text); }; flowlayoutpanel1.controls.add(newbox); directoryinfo di = new directoryinfo(dir); directorysecurity ds = di.getaccesscontrol(); foreach (accessrule rule in ds.getaccessrules(true, true, typeof(ntaccount))) { newbox.listbox1.items.add(string.format("{0}", rule.identityreference.value)); } } } this allows user enter local path, e.g. "c:\temp\test folder" or unc path "\server\share\temp\network test folder", processed folder folder, populating form using display data.
Comments
Post a Comment