Ejemplo n.º 1
0
        /// <summary>
        /// Gets the group SIDs associated with the current token.
        /// </summary>
        public unsafe static IEnumerable <GroupSidInformation> GetTokenGroupSids(AccessToken token)
        {
            List <GroupSidInformation> info = null;

            TokenInformationInvoke(token, TokenInformation.Groups,
                                   buffer =>
            {
                TOKEN_GROUPS *groups = (TOKEN_GROUPS *)buffer;
                ReadOnlySpan <SID_AND_ATTRIBUTES> data = new ReadOnlySpan <SID_AND_ATTRIBUTES>(&groups->Groups, (int)groups->GroupCount);
                info = new List <GroupSidInformation>(data.Length);
                for (int i = 0; i < data.Length; i++)
                {
                    info.Add(new GroupSidInformation(CopySid(data[i].Sid), (GroupSidAttributes)data[i].Attributes));
                }
            });

            return(info);
        }
Ejemplo n.º 2
0
 public static extern int AdjustTokenGroups([NativeTypeName("HANDLE")] IntPtr TokenHandle, [NativeTypeName("BOOL")] int ResetToDefault, [NativeTypeName("PTOKEN_GROUPS")] TOKEN_GROUPS *NewState, [NativeTypeName("DWORD")] uint BufferLength, [NativeTypeName("PTOKEN_GROUPS")] TOKEN_GROUPS *PreviousState, [NativeTypeName("PDWORD")] uint *ReturnLength);
Ejemplo n.º 3
0
 public static extern BOOL AdjustTokenGroups(HANDLE TokenHandle, BOOL ResetToDefault, [NativeTypeName("PTOKEN_GROUPS")] TOKEN_GROUPS *NewState, [NativeTypeName("DWORD")] uint BufferLength, [NativeTypeName("PTOKEN_GROUPS")] TOKEN_GROUPS *PreviousState, [NativeTypeName("PDWORD")] uint *ReturnLength);