3

次のように、特定のファイルを作成したユーザーを特定しようとしています。

string path = "C:\\TheFile.dat";
string user = System.IO.File.GetAccessControl(path).GetOwner(typeof(System.Security.Principal.NTAccount)).ToString();

管理者ユーザー グループのメンバーではないユーザーによってファイルが作成された場合、ユーザーのユーザー名が返されました。ただし、Administrators ユーザー グループのメンバーによってファイルが作成された場合 "Domain\Administrators" が返されました。

なぜこれが起こるのか、実際のユーザー名が確実に返されるようにするにはどうすればよいか、誰でも考えられますか?

ありがとう。

4

1 に答える 1

6

これは、オペレーティング システム自体のデフォルトの動作です。新しいファイルを作成し、「右クリック > セキュリティ タブ > 詳細設定 > 所有者」をクリックすると、管理者の場合、所有者タブに 2 つのエントリがあることがわかります。1 つ目は「管理者」、2 つ目はファイルを作成したユーザーです。これがクライアントのコンピューターである場合、これが常に既定の動作になります。その理由は次のとおりです。ユーザーが管理者である場合、そのユーザーが作成したファイルは、個々のユーザーではなく、管理者グループ全体が所有していると見なされます。

于 2011-05-16T10:58:10.857 に答える