В настоящее время у меня есть клиентское устройство, которое побуждает пользователя для пользователя/PASS и создает систему.net.networkcredential , которая передается в службу wcf . Эта услуга wcf затем использует учетные данные для использования на другой внешней службе. < /p>
Проблема заключается в том, что всякий раз, когда я прохожу через System.net.networkcredential < /code> Службу, она, кажется, теряет поле пароля, и поэтому я никогда не получаю его для аутентификации с внешней службой. Я протестировал просто прохождение простого текста/струн в качестве пользователя/прохода, и это работает, но, чувствуя, что это не очень здорово для безопасности (хотя у меня есть HTTPS, включенные для всего трафика между этими двумя службами).
Есть ли способ правильно передавать эти учетные данные в Service? />
public string TestCred(System.Net.NetworkCredential c, string username, string pass)
{
cred = c;
userName = username;
passWord = pass;
string s = cred.UserName + cred.Password + "end";
return s;
}
< /code>
У меня есть его вернуть эту строку, чтобы проверить то, что на самом деле получено на стороне службы, а пароль полностью пуст (имя пользователя делает его там ОК). < /p>
Вот код, который я использую в wcf < /em>, чтобы связаться с внешней службой: < /p>
externalService.Credentials = new System.Net.NetworkCredential(cred.UserName, cred.Password, "domain");
< /code>
Это не работает, так как поле creds.password пустое, я также попробовал: < /p>
externalService.Credentials = cred;
< /code>
, который также терпит неудачу. < /p>
Когда я использую простые строки, хотя это отлично работает: < /p>
externalService.Credentials = new System.Net.NetworkCredential(userName, passWord, "domain");
< /code>
Есть предложения? Поскольку подключение между клиентским устройством-WCF и сервис-экстернальной службой требуется https-ssl , оно немного безопасно, но я не чувствовал себя большим проходящим пользователем/проходом со строками.
Подробнее здесь: https://stackoverflow.com/questions/222 ... wcf-client