2016-12-07 20 views
0

ASP .Net ApplicationWindows Server 2016IIS 10にホストされています。 ImpersonationおよびWindows Authenticationが有効になります。偽装ユーザーがEWS Managed API 2.0によってExchange Serverにログインできるようにする

ログインしたActive Directoryユーザーが、追加のログインなしで自分のメールボックスに関連する操作を実行することを希望します(ユーザー名とパスワードを入力しないでください)。

ユーザーはExchange ServerActive Directoryのユーザーと、アプリケーションがホストされているサーバーでどのような設定変更を行う必要がありますか?私はAutodiscoverUrlを回避しようとすると、このように、The Autodiscover service couldn't be located. :私は、エラーを持っているAutodiscoverUrlとその場合

using (var context = WindowsIdentity.GetCurrent().Impersonate()) 
{ 
    string mailbox = "[email protected]" 
    ExchangeService service = new ExchangeService(); 
    service.AutodiscoverUrl(mailbox); 
    service.Url = new Uri(serverAddress); 
    service.UseDefaultCredentials = true; 
    service.Credentials = CredentialCache.DefaultNetworkCredentials; 
    var rootFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.MsgFolderRoot, mailbox)); 
} 

using (var context = WindowsIdentity.GetCurrent().Impersonate()) 
{ 
    string serverAddress = "https://domain.com/EWS/Exchange.asmx"; 
    string mailbox = "[email protected]" 
    ExchangeService service = new ExchangeService(); 
    service.Url = new Uri(serverAddress); 
    service.UseDefaultCredentials = true; 
    service.Credentials = CredentialCache.DefaultNetworkCredentials; 
    var rootFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.MsgFolderRoot, mailbox)); 
} 

私も会う

は、私がEWS Managed APIを使用する方法がありますエラー:The request failed. The remote server returned an error: (401) Unauthorized.

どうすればよいですか?これらのサーバーを互いに通信できるように構成しますか?

答えて

1

ケルベロスの代表団に、https://blogs.msdn.microsoft.com/emeamsgdev/2012/11/05/ews-from-a-web-application-using-windows-authentication-and-impersonation/を見て、何をする必要があるかのサンプルと説明があるようにする必要があります。

+0

この例では、サービスへのアクセスに資格情報を使用した承認が使用されています。 (default.aspx.cs)。残念ながら、私が直面した問題は解決しません –

+0

重要なのは委任とKerberosの使用が許可されているので、資格と偽装の両方をカバーしています。理解すべき点は、KerberosをクライアントとIISの間で使用する必要があり(IISをEWSにするのではなく)、IISは資格情報を委譲してEWSへの接続を確立することができます(正しく構成されている場合) –

関連する問題