現在のユーザーに対してListフォルダのコンテンツのアクセス許可を持っていますが、下のコードのために。フォルダにc#での読み取りと実行のアクセス許可があるかどうかを確認する必要があります。ユーザーがコンテンツの一覧のアクセス許可のみを持っている場合は失敗します。
WindowsIdentity currentuser = WindowsIdentity.GetCurrent();
var domainAndUser = currentuser.Name;
DirectoryInfo dirInfo = new DirectoryInfo(downloadSource.BasePath);
DirectorySecurity dirAC = dirInfo.GetAccessControl(AccessControlSections.All);
AuthorizationRuleCollection rules = dirAC.GetAccessRules(true, true, typeof(NTAccount));
foreach(AuthorizationRule rule in rules)
{
if (rule.IdentityReference.Value.Equals(domainAndUser, StringComparison.CurrentCultureIgnoreCase))
{
if ((((FileSystemAccessRule)rule).FileSystemRights & FileSystemRights.ReadAndExecute) > 0)
return true;
}
}
return false;
:
代替は、列挙型のフラグチェックを使用します。私もDirectory.GetFiles(パス)を使用してみましたが、これはListコンテンツのパーミッションで実行されます。これを解決するには? –