1

다른 시스템에 연락처 &을 동기화하기위한 응용 프로그램을 개발하려고합니다. 이 응용 프로그램은 C#으로 작성되었지만 각 사용자의 자격 증명을 모른 채 모든 사용자의 일정과 연락처를 얻는 방법을 이해하지 못합니다. 응용 프로그램은 정보를 폴링하지 말고 응용 프로그램에 이벤트와 같이 보내야합니다.Exchange Server 2010에서 모든 사용자 데이터 가져 오기

'Exchange 2013 101 코드 샘플'을 다운로드 한 MS 사이트를 이미 검색했지만 다른 사용자에게 전자 메일을 보내는 스크립트를 작성했지만 인증은 사용자 자격 증명으로 만 수행되었습니다.

주어진 사용자 목록의 모든 캘린더와 연락처를 읽을 수있는 '마스터'사용자를 만들 수 있습니까? ExchangeServer가 내 애플리케이션을 호출하고 정보를 보내거나 (예 : SOAP) 설문 조사를해야합니까?


업데이트 : 내가 다에 전체 권한이있는 사용자를 만들었지 만이 '마스터'사용자의 일정이 비어 있기 때문에, 서버에서 데이터를 읽는 방법을 모르는

. OWA를 방문하고 다른 사람의 캘린더를 가장 할 수있는 모습을 선택하면 약속을 볼 수 있습니다. 권한에 대한

코드 :

Get-Mailboxdatabase | Add-ADPermission -AccessRights ExtendedRight -ExtendedRights Receive-As, Send-As -User "<SuperAccount>" 

그리고이 일주 일정 :

Add-MailboxFolderPermission –Identity <MailboxFolderId>:\Calendar -AccessRight ReadItems -User <SuperAccount> 

가 어떻게 내 마스터 - 사용자와 사용자의 달력을받을 수 있나요?

답변

1

는 월 Doggen의 대답에 따라 나는 여기에서 찾을 수 있습니다 다른 StackOverflow의 스레드에서 솔루션을 발견 : EWS: Access shared calendars

Seph에서 대답은 Visual Basic에서, 그러나 쉽게 C 번호로 변환 할 수 있습니다 :

using Microsoft.Exchange.WebServices.Data; 

DateTime startTime = new DateTime(2013, 1, 1); 
DateTime endTime = new DateTime(2013, 12, 31); 

var cal = new FolderId(WellKnownFolderName.Calendar, new Mailbox("other user's email")); 
var calendarView = new CalendarView(startTime.Date, endTime.Date.AddDays(1)); 

foreach (var appointmentItem in service.FindAppointments(cal, calendarView)) 
{ 
    Console.WriteLine(appointmentItem.Subject); 
} 
+0

이 코드를 사용하려고하면 "지정한 폴더를 저장소에서 찾을 수 없습니다."라는 메시지가 나타납니다. –

+0

늦어서 유감스럽게 생각합니다. 불행히도 저는 여름 프로젝트 일 뿐이므로 저는이 프로젝트에서 더 이상 일하지 않습니다. 저는 학생입니다. 동일한 버전의 Exchange Server를 사용하고 있습니까? WellKnownFolderName.Calendar는 서버에 적용되는 일반적인 Foldername입니다. ews-managed-api의 올바른 버전을 사용하고 있습니까? Visual Studio에서 올바른 Exchange 버전을 선택 했습니까? – Pixelmonster

+0

NP, 나는 그것이 내가 몇 달 안에 프로젝트에서 일하고 있지는 않지만 알아 냈다고 생각한다. 응답 주셔서 감사합니다. –

1

우리가 사용하는 접근 방식은 모든 사용자가 완전한 편집 권한을 가지고 '마스터'사용자와 캘린더를 공유해야한다는 것입니다. 이 사용자는 서버의 도메인에 만들어야합니다. 우리 코드는 해당 마스터 사용자로 Exchange에 로그인 한 다음 모든 달력에 액세스 할 수 있습니다.

경험이없는 또 다른 접근 방식은 Impersonation입니다. Exchange를 사용하면 다른 사용자의 역할을 할 수 있습니다. Windiow에서 가장하는 권한이 있어야합니다.

+0

내 업데이트를 확인하십시오. – Pixelmonster

+0

마침내 가장을 사용하여이 문제를 해결했습니다. 정말 간단하지만 매우 강력합니다. 나머지 코드는 하나만 남기 때문에 계속 사용할 수 있습니다. - 큰 감사를 드린다! – Pixelmonster