为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 c# 或 C++ 中获得文件或文件夹的有效权限???任何 API 的?

如何在 c# 或 C++ 中获得文件或文件夹的有效权限???任何 API 的?

C#
慕桂英3389331 2021-08-07 17:23:53
我的代码可以工作,但我需要简化的代码,并且不适用于 Authenticated Users 组。还有其他计算有效权限的方法吗?.NET 中是否有用于获取特定用户的有效文件夹权限的 api?我知道如何使用DirectorySecurity.GetAccessRules(). 但在这种情况下,我应该手动分析用户的所有权限、组的权限,包括用户、继承的权限和文件夹的用户权限。Windows API 中是否有可以通过平台调用返回这些权限的函数?namespace DemoProject1{         class Program    {        static Dictionary<String, String> rightsmap = new Dictionary<String, String>();        [DllImport("advapi32.dll", SetLastError = true)]        static extern uint GetEffectiveRightsFromAcl(IntPtr pDacl, ref TRUSTEE pTrustee, ref ACCESS_MASK pAccessRights);        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 4)]        struct TRUSTEE        {            IntPtr pMultipleTrustee; // must be null            public int MultipleTrusteeOperation;            public TRUSTEE_FORM TrusteeForm;            public TRUSTEE_TYPE TrusteeType;            [MarshalAs(UnmanagedType.LPStr)]            public string ptstrName;        }        enum TRUSTEE_FORM        {            TRUSTEE_IS_SID,            TRUSTEE_IS_NAME,            TRUSTEE_BAD_FORM,            TRUSTEE_IS_OBJECTS_AND_SID,            TRUSTEE_IS_OBJECTS_AND_NAME        }                enum TRUSTEE_TYPE        {            TRUSTEE_IS_UNKNOWN,            TRUSTEE_IS_USER,            TRUSTEE_IS_GROUP,            TRUSTEE_IS_DOMAIN,            TRUSTEE_IS_ALIAS,            TRUSTEE_IS_WELL_KNOWN_GROUP,            TRUSTEE_IS_DELETED,            TRUSTEE_IS_INVALID,            TRUSTEE_IS_COMPUTER        }        [DllImport("advapi32.dll", CharSet = CharSet.Auto)]        static extern uint GetNamedSecurityInfo(            string pObjectName,            SE_OBJECT_TYPE ObjectType,            SECURITY_INFORMATION SecurityInfo,            out IntPtr pSidOwner,            out IntPtr pSidGroup,            out IntPtr pDacl,            out IntPtr pSacl,            out IntPtr pSecurityDescriptor);
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 234 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信