:laugh: This is how I do it...
<br />
public static bool SetFolderAccess(<br />
string fullPath<br />
, string userDomainName<br />
, System.Security.AccessControl.FileSystemRights systemRights<br />
, System.Security.AccessControl.InheritanceFlags inheritanceFlags<br />
, System.Security.AccessControl.PropagationFlags propagationFlags<br />
, System.Security.AccessControl.AccessControlType accessControlType<br />
, out string statusMessage)<br />
{<br />
<br />
<br />
bool returnSuccess = true;<br />
System.Security.AccessControl.FileSystemAccessRule accessRule = null;<br />
System.IO.DirectoryInfo directoryInfo = null;<br />
System.Security.AccessControl.DirectorySecurity directorySecurity = null;<br />
<br />
statusMessage = "SUCCESS";<br />
fullPath = MTC.Utils.RemoveSlashFromPath(fullPath);<br />
<br />
try<br />
{<br />
if (System.IO.Directory.Exists(fullPath) == false)<br />
{<br />
statusMessage += "FAILED: Path cannot be empty.";<br />
returnSuccess = false;<br />
throw new Exception(statusMessage);<br />
}<br />
<br />
accessRule =<br />
new System.Security.AccessControl.FileSystemAccessRule(<br />
userDomainName<br />
, systemRights<br />
, inheritanceFlags<br />
, propagationFlags<br />
, accessControlType);<br />
<br />
directoryInfo =<br />
new System.IO.DirectoryInfo(<br />
fullPath);<br />
<br />
directorySecurity =<br />
directoryInfo.GetAccessControl(<br />
System.Security.AccessControl.AccessControlSections.Access);<br />
<br />
directorySecurity.ModifyAccessRule(<br />
System.Security.AccessControl.AccessControlModification.Set<br />
, accessRule<br />
, out returnSuccess);<br />
<br />
if (!returnSuccess)<br />
{<br />
statusMessage += "FAILED: Unable to modify the folder security";<br />
throw new Exception(statusMessage);<br />
}<br />
<br />
directoryInfo.SetAccessControl(directorySecurity);<br />
}<br />
<br />
catch(Exception eo)<br />
{<br />
if (statusMessage.Length.Equals(0))<br />
{<br />
statusMessage = "FAILED: Unexpected error..Unable to modify the folder security";<br />
}<br />
returnSuccess = false;<br />
}<br />
<br />
return returnSuccess;<br />
}<br />