zoukankan      html  css  js  c++  java
  • Create Directory with windows access rights

    I met some troubles when tring to create directory with access rights, fortunately, I found some useful imformation, just mark them as below,

    View Code
    Imports System.Security.AccessControl

    Imports System.IO



    Public Class Form1



    ' Add access control for Windows Account to directory or file

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    AddFileSecurity(
    "\\MartinXie\ShareFolder", "Everyone", "Write")

    AddFileSecurity(
    "\\MartinXie\ShareFolder", "Domain\UserCccount", "FullControl")

    End Sub



    Public Sub AddFileSecurity(ByVal filePath As String, ByVal username As String, ByVal power As String)

    Dim dirinfo As DirectoryInfo
    = New DirectoryInfo(filePath)

    Dim dirsecurity As DirectorySecurity
    = dirinfo.GetAccessControl()

    Select Case power

    Case
    "FullControl"

    dirsecurity.AddAccessRule(New FileSystemAccessRule(username, FileSystemRights.FullControl, InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly, AccessControlType.Allow))

    dirsecurity.AddAccessRule(New FileSystemAccessRule(username, FileSystemRights.FullControl, InheritanceFlags.None, PropagationFlags.InheritOnly, AccessControlType.Allow))

    dirsecurity.AddAccessRule(New FileSystemAccessRule(username, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit, PropagationFlags.InheritOnly, AccessControlType.Allow))

    Case
    "ReadOnly"

    dirsecurity.AddAccessRule(New FileSystemAccessRule(username, FileSystemRights.Read, AccessControlType.Allow))

    Case
    "Write"

    dirsecurity.AddAccessRule(New FileSystemAccessRule(username, FileSystemRights.Write, InheritanceFlags.ContainerInherit, PropagationFlags.InheritOnly, AccessControlType.Allow))

    dirsecurity.AddAccessRule(New FileSystemAccessRule(username, FileSystemRights.Write, InheritanceFlags.None, PropagationFlags.InheritOnly, AccessControlType.Allow))

    dirsecurity.AddAccessRule(New FileSystemAccessRule(username, FileSystemRights.Write, InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly, AccessControlType.Allow))

    Case
    "Modify"

    dirsecurity.AddAccessRule(New FileSystemAccessRule(username, FileSystemRights.Modify, AccessControlType.Allow))

    End Select

    dirinfo.SetAccessControl(dirsecurity)

    End Sub

    End Class

    If you want to remove access control permission for Windows Account from directory or file, just change AccessControlType.Allow to AccessControlType.Deny in above code sample.

     

    Some tutorials:
    Article:Working with Access Control List in .NET

    http://nayyeri.net/blog/Working-with-Access-Control-List-in-NET-2-0/

    Thread: about DirectorySecurity discussion
    http://social.msdn.microsoft.com/Forums/en-US/clr/thread/a83ddfea-5ad7-4a44-ab40-0fd5cadf4e99

  • 相关阅读:
    “嫦娥一号”探月卫星成功发射
    优化SQL Server数据库查询(转)
    虚拟网络连接设置
    字符串分割自定义函数(SQL)
    做程序的劫客
    Linux学习笔记12我的第一个C程序
    C#学习笔记——25个经典问题
    C#学习笔记——回调机制
    C#学习笔记——TCP通讯
    halcon学习笔记——实例篇(2)长度和角度测量
  • 原文地址:https://www.cnblogs.com/chenjunsheep/p/1981494.html
Copyright © 2011-2022 走看看