NEWS

[C#] Hướng dẫn phân quyền Special Permission Folder trên Winform

[C#] Hướng dẫn phân quyền  Special Permission Folder trên Winform
Đăng bởi: Thảo Meo - Lượt xem: 8399 09:35:14, 26/11/2019C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn cách phân quyền truy cập vào folder windows (Folder Permission C#) trên Winform.

[C#] Hướng dẫn phân quyền Special Permission Folder trên Winform

Giao diện demo ứng dụng phân quyền Folder Permission C#:

PermissionFolder_demo_winform

Khi các bạn phân vùng ổ đĩa cứng theo định dạng NTFS, thì khi các bạn vào thuộc tính của Folder, sẽ có thêm tab Sercurity.

Tab này giúp các bạn phân quyền cho phép các user truy cập và làm việc với folder như: Read, Write, Delete, Fullcontrol...

Ví dụ, mình muốn Deny user: nguyenthao truy cập vào thư mục newFolder2, thì khi chạy ứng dụng xong, user: Nguyenthao click vào folder sẽ hiển thị như hình bên dưới, và không được phép truy cập.

PermissionFolder_demo

Lúc đó các bạn vào danh sách quyền sẽ thấy thông tin có dòng user: nguyenthao Read (deny) như hình bên dưới.

PermissionFolder_demo_csharp

Các bạn cần import hai thư viện: System.ManagementSystem.Management.Instrumentation vào project nhé

Source code Permission Folder C# winform:

using System;
using System.IO;
using System.Management;
using System.Security.AccessControl;
using System.Windows.Forms;

namespace PermissionFolder
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            GetUsers();
            cb_systemRights.DataSource = Enum.GetValues(typeof(FileSystemRights));
            cb_accessControlType.DataSource = Enum.GetValues(typeof(AccessControlType));

          

        }
        public void GetUsers()
        {

            SelectQuery sQuery = new SelectQuery("Win32_UserAccount", "Domain='" + System.Environment.UserDomainName.ToString() + "'");

            try
            {
                ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(sQuery);
                foreach (ManagementObject mObject in mSearcher.Get())
                {
                    cbUser.Items.Add(mObject["Name"]);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btn_browser_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog myFolderBrowserDialog = new FolderBrowserDialog();
            myFolderBrowserDialog.ShowDialog();
            tbFolder.Text = myFolderBrowserDialog.SelectedPath.ToString();
        }

        private void btn_run_Click(object sender, EventArgs e)
        {
            DirectoryInfo myDirectoryInfo = new DirectoryInfo(tbFolder.Text);
            DirectorySecurity myDirectorySecurity = myDirectoryInfo.GetAccessControl();
            string User = Environment.UserDomainName + "\\" + cbUser.SelectedItem.ToString();
            var fileSystemRights = (FileSystemRights) Enum.Parse(typeof(FileSystemRights), cb_systemRights.Text);
            var accessControlType = (AccessControlType) Enum.Parse(typeof(AccessControlType), cb_accessControlType.Text);
            myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(User, fileSystemRights, accessControlType));
            //myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(User, FileSystemRights.FullControl, AccessControlType.Allow));
            myDirectoryInfo.SetAccessControl(myDirectorySecurity);

            MessageBox.Show("Permissions Altered Successfully");
        }
    }

}

Thanks for watching!

 

DOWNLOAD SOURCE

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn phân quyền  Special Permission Folder trên Winform
Đăng bởi: Thảo Meo - Lượt xem: 8399 09:35:14, 26/11/2019C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.