У меня есть следующий метод, чтобы проверить, есть ли у текущего пользователя доступ на запись к указанному сетевому расположению
DirectorySecurity shareSecurity = new DirectoryInfo(this.GetFileServerRootPath).GetAccessControl();
foreach (FileSystemAccessRule fsRule in shareSecurity.GetAccessRules(true, true, typeof(NTAccount)))
{
// check write permission for current user
if (AccessControlType.Allow == fsRule.AccessControlType &&
FileSystemRights.Write == (fsRule.FileSystemRights & FileSystemRights.Write))
{
if (null != fsRule.IdentityReference &&
fsRule.IdentityReference.Value == WindowsIdentity.GetCurrent().Name)
{
return true;
}
}
}
return false;
, но проблема заключается в том, что при разрешении папки, предоставленной группе пользователей, вышеуказанный метод не удался.
Я не хочу проверять разрешения путем записи файла и определять права доступа для записи.
есть ли способ найти текущего пользователя в IdentityReference.Value
?или предложения по преодолению этой проблемы?