Setting file and folder permissions

http://www.vbforums.com/showthread.php?616021-Setting-file-and-folder-permissions

There are a few examples of this already on the web but most of them are over complicated and dont just give you a simple example so I thought it might be worth writing one here.

Basically this code can be used to grant or restrict access for a specific user to a folder (see post #6 in this thread for example of setting permissions on a file instead of a folder). There are several things that you can play around with in this example to modify the effects (e.g deny permission instead of granting permission,modify the inheritance of the new permission,change the specific permissions issued etc etc) but if you run it as it is then it will grant the user Modify access to the folder and this permission will be inherited by any child objects within the folder. The new permission will also just be added to the folder's permission list,it will not replace the permissions already on the folder - If you want to completely remove all of the existing permissions on the folder when you add this new permission then you uncomment the line that is commented out near the end of the code.

vb Code:
  
  
  1. 'At the top of your code
  2. Imports System. Security. AccessControl
  • Dim FolderPath As String = "C:\TestingFolder" 'Specify the folder here
  • Dim UserAccount As String = "MYDOMAIN\someuser" 'Specify the user here
  • Dim FolderInfo As IO. DirectoryInfo = New IO. DirectoryInfo (FolderPath )
  • Dim FolderAcl As New DirectorySecurity
  • FolderAcl. AddAccessRule ( New FileSystemAccessRule (UserAccount,FileSystemRights. Modify,InheritanceFlags. ContainerInherit Or InheritanceFlags. ObjectInherit,PropagationFlags. None,AccessControlType. Allow ) )
  • 'FolderAcl.SetAccessRuleProtection(True,False) 'uncomment to remove existing permissions
  • FolderInfo. SetAccessControl (FolderAcl )

  • This line is the main place where you might want to modify things to change the behavior of the permissions:

    vb Code:
      
      
    1. normal; font-family:'Courier New',AccessControlType. Allow )

    Hopefully it is fairly obvIoUs which parts of that line you need to change to get the desired effect that you want. For example if you want to just grant the user Read access instead of Modify then the line might look like this:

    vb Code:
      
      
    1. normal; font-family:'Courier New',FileSystemRights. ReadAndExecute,AccessControlType. Allow ) )

    If you want to set permissions for files instead of folders,just use the same technique but use the FileSecurity class instead of DirectorySecurity.

    相关文章

    Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
    VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
    在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
    转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
    Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
      窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...