웹 서비스를 교환하기 위해 인증하는 방법이 필요합니다
-
05-07-2019 - |
문제
Exchange Web Services를 사용하여 한 명 이상의 사람들을 위해 캘린더에서 약속을 찾고, 만들고, 업데이트하고, 삭제합니다. 이 응용 프로그램은 관리자가 직원의 휴가 시간을보고 가용성에 따라 약속을 할당하는 데 사용됩니다.
이를 위해서는 모든 작업을 위해서는 인증 된 사용자의 자격 증명을 웹 서비스로 보내야합니다. 지금까지, 내가 허용 할 수있는 두 가지 방법은 1) 각 사용자의 사용자 이름과 비밀번호를 전달하고 2) 기본적으로 기본적으로 사용하도록하는 사용자를 가장합니다. DefaultCredentials 옵션은 사용자를 가장 할 수 없기 때문에 우리에게는 작동하지 않습니다.
다른 방법을 아는 사람이 있습니까?
해결책
기업 정책 제한 사항이 있습니까? Windows Chermersonation 또는 Exchange Cherestonation을 언급하고 있습니까?
사용할 수없는 가장에 따라 대안은 대의원 일 수 있습니다.
목표가 관리자가 여러 사서함을 볼 수 있도록하는 경우 다음은 다음과 같습니다.
(1) 직원 사서함에 대한 대의원을 관리자에게 부여합니다. 대의원 액세스 수준에 따라 관리자는 직원 사서함을보고 필요에 따라 편집 할 수 있습니다. 액세스가 어떻게 부여되는지에 따라이 접근법에 대한 경고가 하나 있습니다. 대의원 (직원)은 액세스를 제거하고 관리자가 캘린더를 보지 못하게 할 수 있습니다.
Delegate Access를 사용한 인증을 위해서는 웹 서비스를 사용하는 애플리케이션이 관리자의 컨텍스트에 따라 실행되고 있다고 가정하면 DefaultCredentials를 사용할 수 있어야합니다.
(2) 직원 사서함을 통해 가장 권한이 있거나 액세스 권한이있는 서비스 계정을 만듭니다. 그런 다음 서비스 계정으로 로그인하십시오.
또한 유용한 링크가 있습니다 ...
- Exchange 웹 서비스와의 대의원 액세스 사용 (http://msdn.microsoft.com/en-us/library/bb655860.aspx)
- 교환 웹 서비스 및 대의원 액세스 (http://msdn.microsoft.com/en-us/library/bb204081.aspx)
- 교환 사칭 구성 (http://msdn.microsoft.com/en-us/library/bb204095.aspx)
- 교환 가장http://msdn.microsoft.com/en-us/library/bb204088.aspx)
다른 팁
내가 당신을 올바르게 이해한다면, 관리자는 응용 프로그램을 사용하여 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;
}