API веб-служб Exchange: создание календаря для пользователя с разрешениями проверяющего - PullRequest
2 голосов
/ 13 февраля 2011

Мне интересно, возможно ли установить разрешения дополнительного календаря (подпапки сборки в папке «Календарь») в учетной записи Exchange таким образом, чтобы пользователь не мог создавать, редактировать или удалять встречи ,

Мне удалось создать дополнительный календарь для пользователя с учетной записью олицетворения. Новый календарь доступен пользователю. Чтобы отозвать разрешения для пользователя в этой папке, я установил уровень разрешений для пользователя в этой папке равным FolderPermissionLevel.Reviewer.

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

Вот код, который я использовал.

ExchangeVersion exchVersion = new ExchangeVersion();
exchVersion = ExchangeVersion.Exchange2010;
ExchangeService service = new ExchangeService(exchVersion)
                {
                   Credentials = new WebCredentials("impersonationAcc@example.com",
                                                    "password")
                };

service.AutodiscoverUrl("impersonationAcc@example.com", url => true);
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress,
                                                    "user@example.com");
Folder addCalendar = new Folder(service);
addCalendar.DisplayName = "Another Calendar";
addCalendar.FolderClass = "IPF.Appointment";
var perm = new FolderPermission(new UserId("user@example.com"),
                                FolderPermissionLevel.Reviewer);

addCalendar.Permissions.Add(perm);                                
addCalendar.Save(WellKnownFolderName.Calendar);

Appointment app = new Appointment(service);
app.Subject = "Test Appointment";
app.Start = new DateTime(2011, 2, 14, 10, 0, 0);
app.End = new DateTime(2011, 2, 14, 11, 0, 0);
app.Body = "Content";
app.Save(addCalendar.Id); 

1 Ответ

1 голос
/ 06 апреля 2011

Проведя еще несколько поисков и публикаций на других форумах, я обнаружил, что невозможно ограничить разрешения для любого типа элемента (например, календаря или папки) для владельца учетной записи обмена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...