ASP .Net Application
はWindows Server 2016
IIS 10
にホストされています。 Impersonation
およびWindows Authentication
が有効になります。偽装ユーザーがEWS Managed API 2.0によってExchange Serverにログインできるようにする
ログインしたActive Directoryユーザーが、追加のログインなしで自分のメールボックスに関連する操作を実行することを希望します(ユーザー名とパスワードを入力しないでください)。
ユーザーはExchange Server
、Active 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.
どうすればよいですか?これらのサーバーを互いに通信できるように構成しますか?
この例では、サービスへのアクセスに資格情報を使用した承認が使用されています。 (default.aspx.cs)。残念ながら、私が直面した問題は解決しません –
重要なのは委任とKerberosの使用が許可されているので、資格と偽装の両方をカバーしています。理解すべき点は、KerberosをクライアントとIISの間で使用する必要があり(IISをEWSにするのではなく)、IISは資格情報を委譲してEWSへの接続を確立することができます(正しく構成されている場合) –