Example #1
0
        private SharedFolderData GetMatchingSharedFolderData(SharingContext context, ADRecipient mailboxOwner)
        {
            SharedFolderDataEncryption sharedFolderDataEncryption = new SharedFolderDataEncryption(ExternalAuthentication.GetCurrent());
            bool flag = false;

            ExTraceGlobals.SharingTracer.TraceDebug <ADRecipient>((long)this.GetHashCode(), "{0}: Decrypting the encrypted shared folder data.", mailboxOwner);
            foreach (EncryptedSharedFolderData encryptedSharedFolderData in context.EncryptedSharedFolderDataCollection)
            {
                SharedFolderData sharedFolderData = sharedFolderDataEncryption.TryDecrypt(encryptedSharedFolderData);
                if (sharedFolderData != null)
                {
                    if (SharingProviderHandlerExternal.TryFindMatchingRecipient(sharedFolderData, mailboxOwner) != null)
                    {
                        ExTraceGlobals.SharingTracer.TraceDebug <ADRecipient>((long)this.GetHashCode(), "{0}: Get the decrypted shared folder data.", mailboxOwner);
                        return(sharedFolderData);
                    }
                    flag = true;
                }
            }
            ExTraceGlobals.SharingTracer.TraceError <ADRecipient>((long)this.GetHashCode(), "{0}: Failed to decrypt shared folder data.", mailboxOwner);
            if (flag)
            {
                throw new InvalidExternalSharingSubscriberException();
            }
            throw new InvalidSharingDataException("SharedFolderData", string.Empty);
        }
Example #2
0
        private SharedFolderDataRecipient GetMatchingRecipient(SharedFolderData sharedFolderData, ADRecipient mailboxOwner)
        {
            SharedFolderDataRecipient sharedFolderDataRecipient = SharingProviderHandlerExternal.TryFindMatchingRecipient(sharedFolderData, mailboxOwner);

            if (sharedFolderDataRecipient != null)
            {
                return(sharedFolderDataRecipient);
            }
            ExTraceGlobals.SharingTracer.TraceError <ADRecipient>((long)this.GetHashCode(), "{0}: The sharing message is not intended to this subscriber.", mailboxOwner);
            throw new InvalidExternalSharingSubscriberException();
        }