Microsoft KB Archive/237924

= PRB: ACL: Outlook 2000 Doesn't Properly Read ACL Settings =

Article ID: 237924

Article Last Modified on 3/4/2004

-

APPLIES TO


 * Microsoft Exchange Server 2003 Software Development Kit
 * Microsoft Outlook 2000 Standard Edition
 * Microsoft Collaboration Data Objects 1.21
 * Microsoft Collaboration Data Objects 1.1
 * Microsoft Collaboration Data Objects 1.2

-



This article was previously published under Q237924



SYMPTOMS
When you try to open the Calendar folder, where the permissions have been set using the ACL object with Microsoft Outlook 2000, the following error will appear:

"Unable to display folder".



RESOLUTION
Access to another user's calendar requires that you also have corresponding permissions to the users FreeBusy Data folder. To resolve this problem, you can use the ACL object to also set permissions on the FreeBusy Data folder. This folder is located at the root of the Microsoft Exchange Server mailbox and does not display in the Outlook client. If you grant read-only access to the calendar, set the same access level to the FreeBusy Data folder. If you grant write access to the calendar, you must grant editor-level permissions to the FreeBusy Data folder.

You can now access the Calendar folder with Outlook 2000 without an error.



Steps to Reproduce Behavior
 Register the ACL.dll from the Platform SDK on the computer that you are going to use to run the code that sets the permissions. Create a new Microsoft Visual Basic project. Add a reference to both "Microsoft Exchange 5.5 ACL Type Library 1.0" and "Microsoft CDO 1.21 library."  Cut and paste the following code to the project: Dim strMailbox, As String Dim strServer As String Dim objFolder As Folder Dim objacls As ACLObject Dim myAce As ACE Dim objFolderAces As Object Dim CDOSession As Session Dim objstore As InfoStore

Sub Main '       'This code depends on a reference to CDO (1.1, 1.2, or 1.21) '                    Set CDOSession = CreateObject("MAPI.Session") strServer = "" strMailbox = "" CDOSession.Logon "", "", True, True, 0, True, strServer & vbLf & strMailbox Set objstore = CDOSession.GetInfoStore Set objFolder = objstore.RootFolder.Folders("Calendar") ' get the aclsobject for the folder Set objacls = CreateObject("MSExchange.aclobject") Set objacls.CDOItem = objFolder ' set the CDO folder to CDOItem Set objFolderAces = objacls.ACEs ' get ACEs for folder For Each myAce In objFolderAces If myAce.ID = "ID_ACL_DEFAULT" Then myAce.Rights = ROLE_OWNER objacls.Update End If       Next

'Clean up       Set objstore = Nothing Set objFolder = Nothing Set objacls = Nothing Set objFolderAces = Nothing 'Logoff Session CDOSession.Logoff Set CDOSession = Nothing End Sub

 Run the code against an Exchange mailbox. The code will change the permissions of "Default" to "Owner" on the Calendar folder.</li> Try to access the Calendar folder from Microsoft Outlook 2000 (Go to the File/Open/Other User's Folders).</li></ol>

RESULT:
You will receive the following error:

"Unable to display folder"

Additional query words: ACL Object

Keywords: kbmsg kbprb KB237924

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.