Are you a world traveler? ZoneTick is a cool utility that'll help you stay in touch over multiple time zones!
 
Public Folders Access Control  
Nik Okuntseff  MS Exchange Server Programming 

Public Folders Access Control

Access to Exchange server public folders is protected by other custom mechanism. Although an object, which represents a folder in the Directory may have an associated Windows NT security descriptor with DACL in it, client access is controlled by an access control list of another kind. There is a bit of confusion here because both are called ACLs. The difference is that a Windows NT ACL specifies rights for Windows NT accounts, while a public folder ACL deals with MAPI PR_ENTRYIDs. I have a separate topic How NT Access Control Relates to Public Folder ACLs that describes where these two things come together.

You can access public folder ACLs via either IExchangeFolderACLs interface, or IExchangeModifyTable. I have written a few samples that illustrate both approaches. Also, MSDN has a sample named ACLEDIT, which illustrates usage of IExchangeFolderACLs.
 

Access Rights

The following code fragment extracted from the EdkMdb.h file lists documented access rights.

//Security bits
#define frightsReadAny        0x0000001L
#define frightsCreate            0x0000002L
#define frightsEditOwned     0x0000008L
#define frightsDeleteOwned 0x0000010L
#define frightsEditAny          0x0000020L
#define frightsDeleteAny      0x0000040L
#define frightsCreateSubfolder 0x0000080L
#define frightsOwner            0x0000100L
#define frightsContact          0x0000200L // NOTE: not part of rightsAll
#define rightsNone               0x00000000
#define rightsReadOnly        frightsReadAny
#define rightsReadWrite       (frightsReadAny|frightsEditAny)
#define rightsAll                   0x00001FBL

The table below explains their meanings:
 
 
Flags
Meaning
frightsReadAny A right to read any message in the folder. 
frightsCreate A right to create messages in the folder. 
frightsEditOwned A right to edit any message owned by a user.
frightsDeleteOwned A right to delete any message owned by a user.
frightsEditAny A right to edit any message in the folder.
frightsDeleteAny A right to delete any message in the folder.
frightsCreateSubfolder A right to create a subfolder in the folder.
frightsOwner Indicates that a user owns the folder.
frightsContact Indicates that a user is the contact person for the folder.
rightsNone No rights at all.
rightsReadOnly Same as frightsReadAny.
rightsReadWrite Combines frightsReadAny and frightsEditAny access.
rightsAll All documented rights with exemption of frightsContact.
In addition to these rights Exchange server uses flag 0x0000400, which determines folder visibility to a user. This flag is not a member of rightsAll.
 

Roles

Microsoft Exchange server uses a few roles for public folder clients. Roles are convenient combinations of individual access rights. The following roles are defined:
 
 
Role
Access Mask
Owner 0x000007FB
Publishing Editor 0x000004FB
Editor 0x0000047B
Publishing Author 0x0000049B
Author 0x0000041B
Nonediting Author 0x00000413
Reviewer 0x00000401
Contributor 0x00000402
 
You may easily determine which individual rights contribute to the role by examining it access mask.
 

Who May Be Listed in an ACL?

The following entities may be listed in a public folder ACL:

  • A user from Microsoft Exchange server address book.
  • A distribution list from Microsoft Exchange server address book.
  • A public folder.
  • A defined role.

 
[ Contents | Home ]

Send comments and suggestions to niko@wrconsulting.com
Copyright © 1997-1998 by Nik Okuntseff