我们需要为从Windows控制台应用程序中消耗的Web服务提供身份验证。
当我启用认证抢先时,我能够通过SOAP UI调用Web服务方法,因为它添加了我提供用户名和密码的身份验证标题。
现在我想通过My C#代码调用请求时添加相同的标题。
<soapenv:Header><wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsse:UsernameToken wsu:Id="UsernameToken-639FE421A953014BDF15093394957591"><wsse:Username>{Provided username here}</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">{Provided password here}</wsse:Password><wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">JHMpkw==</wsse:Nonce><wsu:Created>2017-10-30T04:58:15.758Z</wsu:Created></wsse:UsernameToken></wsse:Security></soapenv:Header>
到目前为止我尝试了什么:
var client = new NumberServiceClient( );
client.ClientCredentials.UserName.UserName = "{username here}";
client.ClientCredentials.UserName.Password = "{password here}";
我的请求无法访问网络服务,因为它是在HTTPS下托管的。
根据我的发现似乎在某种程度上我需要在发送请求之前添加身份验证标头。
任何帮助?