正在检查当前用户的共享文件夹写访问权限
本文关键字:共享文件 共享 文件夹 写访问 权限 用户 检查 | 更新日期: 2023-09-27 18:05:13
我有以下方法来检查当前用户是否有对给定网络位置的写访问
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
中找到当前用户?或者有什么建议来克服这个问题?
这可能对你有用:
FileIOPermission writePermission = new FileIOPermission(FileIOPermissionAccess.Write, this.GetFileServerRootPath);
try
{
writePermission.Demand();
return true;
}
catch (SecurityException s)
{
return false;
}
只是好奇-为什么不尝试/捕获你的写操作?
也许您应该在该目录上使用DirectoryInfo来获取其安全策略。