我们的php webservice为客户提供网络功能。我们使用以下代码进行身份验证。
$client = new SoapClient("some.wsdl",
array('login' => "some_name",
'password' => "some_password"
));
客户端已使用C#构建,我们已经能够在没有身份验证的情况下建立连接,但我们无法应用身份验证。
我们应该为客户提供什么样的房产? 我已经尝试将此配置与用户名凭据结合使用。
<basicHttpBinding>
<binding name="webserviceControllerBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic"/>
</security>
</binding>
</basicHttpBinding>
client.ClientCredentials .UserName.UserName =“username”; client.ClientCredentials.UserName.Password =“password”;
我们的php服务使用什么样的安全性? 我们如何使用身份验证建立可靠的连接,但不使用证书或https。
答案 0 :(得分:0)
尝试
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
更新:它应该是TransportWithMessageCredential模式
答案 1 :(得分:0)
似乎我必须将身份验证放在soapheader中。
http://ericphan.info/blog/2010/6/3/adding-custom-http-header-to-all-wcf-requests.html
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/c96c8f6e-0711-4ba1-a97c-008f44610f0e/
http://www.codeproject.com/KB/webservices/SOAPHeaderAuthentication.aspx
通过互联网上的一些例子。
但我还没有为我的案例喷射器找到一个例子。
答案 2 :(得分:0)
MessageHeader header= MessageHeader.CreateHeader("My-CustomHeader","http://myurl","Custom Header.");
using (phptoebiTestclient.ServiceReference1.webserviceControllerPortTypeClient client = new phptoebiTestclient.ServiceReference1.webserviceControllerPortTypeClient())
{
using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
{
OperationContext.Current.OutgoingMessageHeaders.Add(header);
HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes("username:password");
httpRequestProperty.Headers.Add("Authorization: Basic "+ System.Convert.ToBase64String(toEncodeAsBytes));
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
string str = client.getVacanciesReference("");
}
}
上面的代码解决了我的问题(我使用这些网址作为参考)
http://caught-in-a-web.blogspot.com/2008/04/how-to-add-custom-http-header-in-wcf.html
http://en.wikipedia.org/wiki/Basic_access_authentication