Tôi đã có đoạn mã sau:EWS - Truy cập tất cả Shared Calendars
private void ListCalendarFolders(ref List<EBCalendar> items, int offset)
{
var pageSize = 100;
var view = new FolderView(pageSize, offset, OffsetBasePoint.Beginning);
view.PropertySet = new PropertySet(BasePropertySet.FirstClassProperties);
view.PropertySet.Add(FolderSchema.DisplayName);
view.PropertySet.Add(FolderSchema.EffectiveRights);
view.Traversal = FolderTraversal.Deep;
FindFoldersResults findFolderResults = service.FindFolders(WellKnownFolderName.MsgFolderRoot, view);
foreach (Folder myFolder in findFolderResults.Folders)
{
if (myFolder is CalendarFolder)
{
var folder = myFolder as CalendarFolder;
items.Add(EBCalendar.FromEWSFolder(folder));
}
}
if (findFolderResults.MoreAvailable)
{
offset = offset + pageSize;
ListCalendarFolders(ref items, offset);
}
}
đâu service
là một ví dụ ExchangeService
. Thật không may, nó vẫn liệt kê các thư mục đã bị xóa và nó không liệt kê các lịch được chia sẻ.
Tôi làm cách nào để có thể liệt kê tất cả các lịch được chia sẻ và làm cách nào để tôi không bao gồm các thư mục đã bị xóa?
Ồ, thật tuyệt vời. Tôi sẽ thử ngay bây giờ. Cảm ơn bạn! – synic
Điều này hoạt động tuyệt vời để có được các thư mục lịch được chia sẻ. Nhưng bây giờ tôi gặp sự cố khi tôi cố truy cập các mục trong lịch được chia sẻ. Về cơ bản tôi cần có trạng thái rảnh/bận. Tôi đã gọi 'service.FindItems (SharedCalendaFolder.Id, iCalenderview)' và tôi nhận được "Quyền truy cập bị từ chối. Hãy kiểm tra thông tin đăng nhập và thử lại." lỗi. Nhưng trong ứng dụng web triển vọng, tôi có thể xem các sự kiện lịch được chia sẻ. – Dimuthu
Để truy cập lịch, bạn sẽ cần ít nhất quyền truy cập đọc vào lịch, tôi cho rằng bạn chỉ có quyền FreeBusy vào lúc này để bạn chỉ có thể sử dụng thao tác GerUseravailiblity trong trường hợp đó trừ khi bạn gán nhiều quyền hơn cho thư mục lịch cho tài khoản của mình. –