Exchange Server 2003 — удалять приглашения на собрания (назначения) после удаления собрания

Я использую IndependentSoft Component и мне интересно, каким образом (с этим компонентом или любым другим API) Я мог бы имитировать то, что я также могу сделать вручную:

После создания запроса на встречу и приглашения какой-либо учетной записи B я удаляю созданную мной встречу, что оставляет встречи приглашенных нетронутыми. Теперь я могу (учитывая достаточно высокий уровень доступа к календарю другой учетной записи, я думаю, уровень 6) удалить эту встречу вручную, и это то, что хочет клиент.

Теперь я не могу использовать компонент IndependentSoft для этого, так как мне нужен почтовый ящик для записи на прием, но у меня нет для этого прав на почтовый ящик, и я не вижу другого способа получить адрес деловое свидание, встреча (?).


person hko    schedule 28.12.2011    source источник
comment
Не уверен, что понимаю проблему... для создания собрания у вас уже должна быть учетная запись... когда вы удаляете собрание из той же учетной записи, которая его создала (то есть владельца собрания), у вас есть необходимые разрешения?   -  person Yahia    schedule 28.12.2011
comment
нет.. Я удаляю встречу из учетной записи, но я также хочу удалить встречу из приглашенных учетных записей - эти встречи говорят, что встреча отменена, но это не отображается в Outlook 2003 7days-weekview. Клиент хочет очистить все встречи после удаления встречи, поскольку все это автоматизированный процесс.   -  person hko    schedule 29.12.2011
comment
Пожалуйста, не добавляйте (C#) к своему заголовку. Вот для чего нужны теги.   -  person John Saunders    schedule 29.12.2011
comment
хорошо, думал об этом, приятно знать   -  person hko    schedule 30.12.2011


Ответы (2)


Отменять собрание, не уведомив приглашенных пользователей, считается неправильным этикетом. Вам лучше следовать рекомендациям и просто отправить уведомление об отмене встречи.

Просмотрите документацию IndependentSoft о том, как отменить встречу.


Поскольку вам нужно удалить встречу, вам нужна учетная запись, которая была делегирована для управления учетной записью другого пользователя для удаления встречи. Я рекомендую использовать управляемый API EWS и выполните действие удалить встречу.

Appointment appointment = Appointment.Bind(service, new ItemId("AAMkA="));
appointment.Delete(DeleteMode.MoveToDeletedItems);
person SliverNinja - MSFT    schedule 28.12.2011
comment
Я отправляю уведомление об отмене встречи через компонент IndependentSoft. К сожалению, клиент не заботится о плохом этикете, так как это его приглашения на встречу. ;) Это автоматизированный процесс, и ему нужна непротиворечивая информация в еженедельном обзоре: если какое-то приглашение не существует в основной учетной записи, не должно быть других встреч. - person hko; 29.12.2011
comment
И кстати: все аргументы в пользу того, как что-то должно себя вести, в любом случае относятся к настроению: я должен иметь возможность делать вещи с помощью API, который я также могу делать вручную. И я могу удалить другие встречи вручную, учитывая права доступа к другим календарям (уровень 6+), что было бы возможно для одной основной учетной записи. И я могу сделать это с помощью компонента IndependentSoft, но для этого мне нужны адреса встреч в других календарях без использования других учетных данных. - person hko; 29.12.2011
comment
@hko - Спасибо за разъяснение относительно использования этой функции. Смотрите обновленный ответ. - person SliverNinja - MSFT; 29.12.2011
comment
Извините, я знаю EWS, но это не работает: EWS поддерживает только Exchange 2007SP1 и выше. Exchange 2003 поддерживает только WebDav (определенно без веб-сервиса), и это то, что использует компонент IndependentSoft. - person hko; 30.12.2011
comment
И даже если бы это сработало: мне нужен ItemId (в терминах Webdav это был бы адрес) встречи, в этом вся моя проблема. Кажется, я получаю это только (через компонент IndependentSoft), когда у меня есть права на почтовый ящик, чтобы запрашивать все встречи; проблема в том, что я этого не делаю (и мне не нужно, так как вручную мне не нужно видеть записи календаря других). - person hko; 30.12.2011
comment
@hko - извините, я не знал, что EWS 2007SP1+. Я бы связался с IndependentSoft и обратился в службу поддержки. В противном случае подумайте об обновлении вашего Exchange Server до чего-то с большими возможностями. - person SliverNinja - MSFT; 30.12.2011

Я нашел ответ... и это было совсем не сложно, я просто был поражен слепотой.

Таким образом, ресурс IndependentSoft.GetAppointments имеет перегрузку, которая принимает только адрес, поэтому вы просто берете адрес своего почтового ящика. Календарь (например, «http://sub.exchangedomain.com/emailalias/calendar»), замените свой адрес вы хотите получить доступ (например, "http://sub.exchangedomain.com/otheremailalias/calendar"), и все... со стандартными настройками безопасности теперь вы можете видеть записи календаря этой учетной записи на сервере Exchange 2003. Теперь, если вы хотите удалить встречу, вы просто используете resource.Delete(назначение) для любой из полученных вами встреч. Разумеется, учетная запись должна давать вам права на это.

Иногда это так просто, вы просто не видите/игнорируете/не понимаете простую подпись.

person hko    schedule 02.01.2012