У меня есть клиент Windows WPF, который вызывает веб-сервис WCF.Пользователь уже вошел в домен Windows перед запуском приложения, а служба WCF использует проверку подлинности Windows.
Я хочу, чтобы клиент WPF использовал WindowsPrincipal уже вошедшего в систему пользователя при вызове службы WCF.Я НЕ хочу создавать новый экземпляр NetworkCredential с EXPLICIT именем пользователя и паролем, чтобы сделать это, просто потому, что попросить пользователя войти в систему дважды (в Windows и в приложении) ... это довольно недружелюбно.
Большинство примеров, которые я видел, используют этот способ для установки учетных данных, а это не то, что я хочу
serviceClientProxy.ClientCredentials.Windows.ClientCredential
= new NetworkCredential("username", "password", "domain");
Вместо этого я хотел бы сделать что-то вроде этого
serviceClientProxy.ClientCredentials.Windows.AllowedImpersonationLevel
= TokenImpersonationLevel.Identification;
serviceClientProxy.ClientCredentials.Windows.ClientCredential
= { /* network credential for already logged in user */ }
То есть я хочу NetworkCredential для уже существующего (и работающего)
new WindowsPrincipal(WindowsIdentity.GetCurrent())
Кто-нибудь знает, как это сделать?Я пытался установить security mode = ""
и транспорт clientCredentialType = ""
в app.config, но пока безрезультатно.