Fileの所有者を取得するために、調べ物をしてたのですがどうも難しかったので覚書。
ObjectSecurity.GetOwnerを使うことはわかったのですが、引数に何を渡していいかがわかりにくい。
targetType
所有者を取得する対象となるプライマリ グループ。
Securityまわりのクラスを扱うのになれていないのもあるんですが、System.Typeを引数にとるってのがとってもわかりにくいですね。結局は↓な感じなのですが...。
var fileSecurity = File.GetAccessControl(@"C:\temp\aa.txt"); // NTAccount形式で取得 var account = fileSecurity.GetOwner(typeof(NTAccount)); Console.WriteLine("Account: " + account.Value); // SIDで取得 var sid = fileSecurity.GetOwner(typeof(SecurityIdentifier)); Console.WriteLine("SID: " + sid.Value);
これならまだ、
T GetOwner<T>() where T : IdentityReference
とかの方がわかりやすいかと。
広告