我需要调用在Windows域中运行的Web服务,该域与运行(Windows窗体)客户端的Windows服务器不同。Web服务使用Windows身份验证进行安全保护。如何使用存储的凭据调用Web服务?
Web服务域的域凭证保存在客户端的用户配置文件(保存的用户名和密码在XP中),但我一直无法弄清楚如何在调用Web服务时使用这些保存的凭证。我发现很多的例子使用
WebService1.Credentials = System.Net.CredentialCache.DefaultCredentials
(这不起作用,因为它是本地域的凭据)
或
WebService1.Credentials = new NetworkCredentials(username, pwd, domain)
(分别为用户名,密码,域是硬编码的)。
我使用CredEnumerate
和CredRead
使用Windows API读了,但不知道如何(或者如果)我可以一个PCREDENTIAL
转换为管理NetworkCredential
(ReadCred
不会为存储域凭据返回密码)
有没有人在这里知道如何做到这一点?
谢谢!