2017-02-23 5 views
0

私はc#winformsアプリケーションを作成しています。フォルダ/サブフォルダ/ファイルへのアクセスをプログラムに限定するには?

私はScanRepositoryというフォルダを持っています。他のプログラムやWindowsユーザーがこのフォルダ、サブフォルダやファイルを一種のパスワードやキーで開き、自分のC#で開くことができないようにしたいのですが、コード。

提案がありますか?

答えて

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%を保証します!**; - )**あなたはいつでも にリンクを残すことができます答えの一番下にある の資料の内容... –

+0

ありがとうございました:) –

+0

@medomedoそのブログ記事の内容全体をStack Overflowにコピーする権限はありますか?ブログ投稿は無免許で、Stack Overflowは完全にCreative Commons Licenseの下にあります。 –

1

最も明白な答えは、ユーザーにフォルダをロックした場合にユーザーを聞かせてほとんどのものは、そのフォルダがそのユーザーにロックが解除されている間、他のアプリがで見ることができます..で他のアプリをできるようになるということです

最善の方法は、ユーザーが使用できないアカウントとしてサービスを実行することです。次に、そのアカウント(とシステム、それをバックアップしたい場合)だけにアクセスをロックし、それらのファイルやリストなどへのアクセスを処理するサービスを作成して、あなたのアプリとインターフェースします。彼らは本質的にアクセスできない。

関連する問題