我正在創建一個C#winforms應用程序。如何限制文件夾/子文件夾/文件只能訪問程序?
而我有一個文件夾ScanRepository,我想阻止其他程序和Windows用戶打開這個文件夾,子文件夾和文件,用一種密碼或一個鍵,並且能夠打開它們在我的c#碼。
有什麼建議嗎?
我正在創建一個C#winforms應用程序。如何限制文件夾/子文件夾/文件只能訪問程序?
而我有一個文件夾ScanRepository,我想阻止其他程序和Windows用戶打開這個文件夾,子文件夾和文件,用一種密碼或一個鍵,並且能夠打開它們在我的c#碼。
有什麼建議嗎?
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);
}
}
最明顯的答案是,讓你的用戶在大多數事情一樣,都會讓其他應用..如果你鎖定的文件夾給用戶,而該文件夾被解鎖到該用戶的其他應用程序可以看到用戶也可以看到。
最好的方法是讓服務作爲用戶無法使用的帳戶運行。然後,您只能訪問該帳戶(如果要備份該系統,則系統會將其鎖定),然後創建一個服務來處理對它與應用程序接口的文件和列表等的訪問權限。因此,在用戶眼中,他們有進入,在本質上他們不。
雖然你的回答是100%正確的,但如果該鏈接被移動,更改,合併爲另一個或主站點 剛剛消失,它也可能成爲100%無用 ... **: - (**因此,請[編輯]您的答案,並將 從鏈接中的相關步驟複製到您的答案中,從而保證您的答案爲本網站整個生命週期的100%!**; - )**您可以隨時通過 將鏈接留在在您的答案的底部作爲您的 材料的來源... –
感謝您的信息:) –
@medomedo您是否有權將該博客的全部內容複製到Stack Overflow?博客文章未經許可,Stack Overflow完全受創新共享許可。 –