internal static SecurityIdentifier BuildPrimaryGroupSid(SecurityIdentifier UserSid, int PrimaryGroupId) { var groupSid = UserSid.ToBytes(); int ridOffset = groupSid.Length - 4; int groupId = PrimaryGroupId; for (int i = 0; i < 4; i++) { groupSid[ridOffset + i] = (byte)(groupId & 0xFF); groupId >>= 8; } return new SecurityIdentifier(groupSid, 0); }