Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

4.3 Removing an Entry from the Permissions List

In this example, the client is removing the entry for "user8" from the permissions list on the Calendar folder. First, the client retrieves the permissions list by sending the same RopGetPermissionsTable ([MS-OXCROPS] section 2.2.10.2), RopSetColumns [MS-OXCROPS] section 2.2.5.1, and RopQueryRows ([MS-OXCROPS] section 2.2.5.4) ROP requests as in the example in section 4.1. The server returns the following three ROP response buffers with the current permissions list contained in the RowData field of the RopQueryRows ROP response buffer.

The RopGetPermissionsTable ROP response buffer contains the following data (6 bytes).

0000: 3E 01 00 00 00 00

RopId: 0x3E

OutputHandleIndex: 1 (HSOT=0x000000CA)

ReturnValue: 0x00000000 (success)

The RopSetColumns ROP response buffer contains the following data (7 bytes).

0000: 12 01 00 00 00 00 00

RopId: 0x12

InputHandleIndex: 1 (HSOT=0x000000CA)

ReturnValue: 0x00000000 (success)

TableStatus: 0x00 (TBLSTAT_COMPLETE flag is set)

The RopQueryRows ROP response buffer contains the following data (212 bytes).

0000: 15 01 00 00 00 00 02 03-00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 08 00 00-00 00 00 02 00 00 00 15 ................
0020: 00 00 00 75 00 73 00 65-00 72 00 38 00 00 00 00 ...u.s.e.r.8....
0030: 18 00 00 7C 00 00 00 00-00 DC A7 40 C8 C0 42 10 ...|.......@..B.
0040: 1A B4 B9 08 00 2B 2F E1-82 01 00 00 00 00 00 00 .....+/.........
0050: 00 2F 4F 3D 46 49 52 53-54 20 4F 52 47 41 4E 49 ./O=FIRST ORGANI
0060: 5A 41 54 49 4F 4E 2F 4F-55 3D 45 58 43 48 41 4E ZATION/OU=EXCHAN
0070: 47 45 20 41 44 4D 49 4E-49 53 54 52 41 54 49 56 GE ADMINISTRATIV
0080: 45 20 47 52 4F 55 50 20-28 46 59 44 49 42 4F 48 E GROUP (FYDIBOH
0090: 46 32 33 53 50 44 4C 54-29 2F 43 4E 3D 52 45 43 F23SPDLT)/CN=REC
00A0: 49 50 49 45 4E 54 53 2F-43 4E 3D 55 53 45 52 38 IPIENTS/CN=USER8
00B0: 00 00 FF FF FF FF FF FF-FF FF 41 00 6E 00 6F 00 ..........A.n.o.
00C0: 6E 00 79 00 6D 00 6F 00-75 00 73 00 00 00 00 00 n.y.m.o.u.s.....
00D0: 00 00 00 00                                     ....

RopId: 0x15

InputHandleIndex: 1 (HSOT=0x000000CA)

ReturnValue: 0x00000000 (success)

Origin: 0x02 (BOOKMARK_END flag is set)

RowCount: 0x0003 (three PropertyRow structures in the RowData field)

RowData:

PropertyRow structure #1 (beginning at address 0x0009 in the RopQueryRows ROP response buffer):

Flag: 0x00 (no errors)

ValueArray:

0x0000000000000000 (default user)

0x0000 (Unicode null)

0x00000800 (FreeBusySimple flag is set)

0x0000 (byte count is zero bytes, indicating that no PermanentEntryID structure ([MS-OXNSPI] section 2.2.9.3) is present)

PropertyRow structure #2 (beginning at address 0x001A in the RopQueryRows ROP response buffer):

Flag: 0x00 (no errors)

ValueArray:

0x0000001500000002

"user8"

0x00001800 (FreeBusyDetailed and FreeBusySimple flags are set)

The last value in the ValueArray field is the value of the PidTagEntryId property (section 2.2.4). The value begins with the byte count, 0x007C (124), at address 0x0033 in the RopQueryRows ROP response buffer, followed by the 124-byte PermanentEntryID structure.

PropertyRow structure #3 (beginning at address 0x00B1 in the RopQueryRows ROP response buffer):

Flag: 0x00 (no errors)

ValueArray:

0xFFFFFFFFFFFFFFFF (anonymous user)

"Anonymous"

0x00000000 (no permissions flags are set)

0x0000 (byte count is zero bytes, indicating that no PermanentEntryID structure is present)

The permissions list on this folder now has an entry for "user8", which the client added as shown in the example in section 4.1 and modified as shown in the example in section 4.2. The client removes the permissions for "user8" from the permissions list by sending the following RopModifyPermissions ROP request ([MS-OXCROPS] section 2.2.10.1) with the PermissionsData field containing the entry to be removed.

The RopModifyPermissionsROP request buffer contains the following data (21 bytes).

0000: 40 00 00 02 01 00 04 01-00 14 00 71 66 02 00 00 @..........qf...
0010: 00 15 00 00 00                                  .....

RopId: 0x40

LogonId: 0

InputHandleIndex: 0 (HSOT=0x000001DA)

ModifyFlags: 0x02 (IncludeFreeBusy flag is set)

ModifyCount: 0x0001 (one PermissionData structure in the PermissionsData field)

PermissionsData:

PermissionData structure (beginning at address 0x0006 in the RopModifyPermissions ROP request buffer):

PermissionDataFlags: 0x04 (RemoveRow flag is set)

PropertyValueCount: 0x0001 (one TaggedPropertyValue structure in the PropertyValues field)

PropertyValues:

TaggedPropertyValue structure #1 (beginning at address 0x0009 in the RopModifyPermissions ROP request buffer):

PropertyTag: 0x66710014 (PidTagMemberId property (section 2.2.5))

PropertyValue: 0x0000001500000002

The server returns the following ROP response buffer, indicating that it has successfully updated the permissions list for the folder.

The RopModifyPermissions ROP response buffer contains the following data (6 bytes).

0000: 40 00 00 00 00 00

RopId: 0x40

InputHandleIndex: 0 (HSOT=0x000001DA)

ReturnValue: 0x00000000 (success)

Show:
© 2015 Microsoft