CredentialCache.DefaultNetworkCredentials не возвращает текущего зарегистрированного пользователя. ExchangeService
Я пытаюсь передать учетные данные пользователя, вошедшего в систему, в управляемый API-интерфейс веб-служб Exchange. Не пытаясь проверить их или проверить значения, просто используйте их, чтобы сделать вызов. Приложение использует проверку подлинности Windows, и текущая идентификация Windows соответствует ожидаемой.
WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent(); //returns DOMAIN\useraccount
Однако CredentialCache.DefaultNetworkCredentials возвращает учетные данные пула приложений.
exchangeservice.Credentials = CredentialCache.DefaultNetworkCredentials;
\\Passes the application pool credentials.
Я пытался выдать себя за другого, хотя я не уверен, что делаю это правильно.
using (WindowsImpersonationContext context = identity.Impersonate())
{
exchangeservice.Credentials = CredentialCache.DefaultNetworkCredentials;
\\Passes the application pool credentials.
}
Наборы web.config <authentication mode="Windows" />
и IIS также устанавливает проверку подлинности Windows. Для загрузки профиля пользователя установлено значение false в пуле приложений.
Любая помощь будет принята с благодарностью.