2017-02-23 158 views

回答

1
using System.IO; 
using System.Security.AccessControl; 

private void btnBrowse_Click(object sender, EventArgs e) 
{ 
    if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) 
    { 
     textBox1.Text = folderBrowserDialog1.SelectedPath; 
    } 
} 

private void btnLock_Click(object sender, EventArgs e) 
{ 
    try 
    { 

     string folderPath = textBox1.Text; 
     string adminUserName = Environment.UserName;// getting your adminUserName 
     DirectorySecurity ds = Directory.GetAccessControl(folderPath); 
     FileSystemAccessRule fsa = new FileSystemAccessRule(adminUserName, FileSystemRights.FullControl, AccessControlType.Deny) 

     ds.AddAccessRule(fsa); 
     Directory.SetAccessControl(folderPath, ds); 
     MessageBox.Show("Locked"); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    }  
} 

private void btnUnLock_Click(object sender, EventArgs e) 
{ 
    try 
    { 
    string folderPath = textBox1.Text; 
    string adminUserName = Environment.UserName;// getting your adminUserName 
    DirectorySecurity ds = Directory.GetAccessControl(folderPath); 
    FileSystemAccessRule fsa = new FileSystemAccessRule(adminUserName, FileSystemRights.FullControl, AccessControlType.Deny) 

    ds.RemoveAccessRule(fsa); 
    Directory.SetAccessControl(folderPath, ds); 
    MessageBox.Show("UnLocked"); 
    } 
    catch (Exception ex) 
    { 
    MessageBox.Show(ex.Message); 
    } 
} 
+0

雖然你的回答是100%正確的,但如果該鏈接被移動,更改,合併爲另一個或主站點 剛剛消失,它也可能成爲100%無用 ... **: - (**因此,請[編輯]您的答案,並將 從鏈接中的相關步驟複製到您的答案中,從而保證您的答案爲本網站整個生命週期的100%!**; - )**您可以隨時通過 將鏈接留在在您的答案的底部作爲您的 材料的來源... –

+0

感謝您的信息:) –

+0

@medomedo您是否有權將該博客的全部內容複製到Stack Overflow?博客文章未經許可,Stack Overflow完全受創新共享許可。 –

1

最明顯的答案是,讓你的用戶在大多數事情一樣,都會讓其他應用..如果你鎖定的文件夾給用戶,而該文件夾被解鎖到該用戶的其他應用程序可以看到用戶也可以看到。

最好的方法是讓服務作爲用戶無法使用的帳戶運行。然後,您只能訪問該帳戶(如果要備份該系統,則系統會將其鎖定),然後創建一個服務來處理對它與應用程序接口的文件和列表等的訪問權限。因此,在用戶眼中,他們有進入,在本質上他們不。