0

ポータル (ASP.NET Web サイト) から共有ドライブのフォルダーのアクセス許可を管理できるプロジェクトで忙しいです。フォルダ構造でユーザーの特定の権限をすばやく見つける方法はありますか? ファイル サーバーで C#.NET サービスを実行しています。

これは私がアーカイブしようとしているものです:

フォルダ構造:

RootFolder -> TestUser には特別な権限があるため、ユーザーは Folder1
    -> Folder 1 --> TestUser が読み取り (ローカル) を持っている
        -> Folder 1.1 --> TestUser が読み取り (継承) を持っている
            -> Folder 1.1.1 --> TestUser が持っている読み取り (ローカル)

ここで、フォルダー 1 から TestUser を削除しますが、これが発生した場合、TestUser が構造内のどこかのフォルダーにアクセス許可を持っているかどうかを知る必要があります。その場合は、フォルダー 1 とフォルダー 1.1 に特別なアクセス許可を与えて、ユーザーがナビゲートできるようにする必要があります。フォルダ 1.1.1 へ。

私は完全なフォルダー構造とデータベースのアクセス許可を持っていますが、特別なアクセス許可ではなく読み取り/書き込みアクセス許可のみを持っています (ユーザーにフォルダーを表示する権限を与えて、読み取り/書き込みアクセス許可を持つフォルダーに移動できるようにします)。フォルダー構造でクイック検索を実行できれば素晴らしいと思いますので、ユーザーにいくつかの権限があるかどうかを確認して、ユーザーの特別な権限をクリーンアップ/追加できるようにします(ユーザーが読んだすべてのフォルダーに移動できるようにします) /書き込み権限)。

Directory.GetDirectories(fullPath) を使用してフォルダー構造を調べ、次に各ディレクトリに対して dir.GetAccessRules() メソッドを使用しようとしましたが、これは大きなフォルダー構造 (10.000 フォルダー) では非常に遅くなります。

質問が明確であり、提案をいただければ幸いです。

4

1 に答える 1

0

使ってみてください

GetAccessRules(true, false, typeof(SecurityIdentifier))

ユーザー アカウントを事前に変換SecurityIdentifierし、この SID でアクセス ルール エントリを検索します。

于 2014-03-18T17:46:00.320 に答える