문제

Exchange Web Services를 사용하여 한 명 이상의 사람들을 위해 캘린더에서 약속을 찾고, 만들고, 업데이트하고, 삭제합니다. 이 응용 프로그램은 관리자가 직원의 휴가 시간을보고 가용성에 따라 약속을 할당하는 데 사용됩니다.

이를 위해서는 모든 작업을 위해서는 인증 된 사용자의 자격 증명을 웹 서비스로 보내야합니다. 지금까지, 내가 허용 할 수있는 두 가지 방법은 1) 각 사용자의 사용자 이름과 비밀번호를 전달하고 2) 기본적으로 기본적으로 사용하도록하는 사용자를 가장합니다. DefaultCredentials 옵션은 사용자를 가장 할 수 없기 때문에 우리에게는 작동하지 않습니다.

다른 방법을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

기업 정책 제한 사항이 있습니까? Windows Chermersonation 또는 Exchange Cherestonation을 언급하고 있습니까?

사용할 수없는 가장에 따라 대안은 대의원 일 수 있습니다.

목표가 관리자가 여러 사서함을 볼 수 있도록하는 경우 다음은 다음과 같습니다.

(1) 직원 사서함에 대한 대의원을 관리자에게 부여합니다. 대의원 액세스 수준에 따라 관리자는 직원 사서함을보고 필요에 따라 편집 할 수 있습니다. 액세스가 어떻게 부여되는지에 따라이 접근법에 대한 경고가 하나 있습니다. 대의원 (직원)은 액세스를 제거하고 관리자가 캘린더를 보지 못하게 할 수 있습니다.

Delegate Access를 사용한 인증을 위해서는 웹 서비스를 사용하는 애플리케이션이 관리자의 컨텍스트에 따라 실행되고 있다고 가정하면 DefaultCredentials를 사용할 수 있어야합니다.

(2) 직원 사서함을 통해 가장 권한이 있거나 액세스 권한이있는 서비스 계정을 만듭니다. 그런 다음 서비스 계정으로 로그인하십시오.

또한 유용한 링크가 있습니다 ...

다른 팁

내가 당신을 올바르게 이해한다면, 관리자는 응용 프로그램을 사용하여 EWS에 자신을 인증 할 것입니다. 그런 다음 EWS는 권한이 부족하여 다른 사용자의 사서함을 업데이트 할 수 없습니다.

관리자에게 각 사용자의 사서함에 액세스 할 수있는 것은 어떻습니까?

(또는 질문의 상당한 부분을 놓치고 있습니까?)

사용자가 자신의 컴퓨터에 로그인하고 자격 증명 캐시에서 이러한 자격 증명을 사용할 수있는 경우, 여기에서 얻은 icredentials 객체에서 웹 크레디블 히ent 객체를 구성 할 수 있습니다.

public static ExchangeService GetService()
{
    var webCredentials = new WebCredentials(CredentialCache.DefaultNetworkCredentials);

    var service = new ExchangeService(ExchangeVersion);
    service.AutodiscoverUrl(Properties.Settings.Default.SmptAccountName);
    service.Credentials = credentials;

    return service;   
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top