我有来自wsdl的c#代理构建。 我正在尝试向请求标头添加基本身份验证。 我试图呼叫的网络服务不在c#中。 (php可能是)
使用fiddler,我可以看到“没有授权标题”
我的电话结果是:用户名/密码错误
以下是我添加到我的代理
的内容protected override System.Net.WebRequest GetWebRequest(Uri uri){
System.Net.HttpWebRequest request;
request = (System.Net.HttpWebRequest)base.GetWebRequest(uri);
if (PreAuthenticate){
System.Net.NetworkCredential networkCredentials =
Credentials.GetCredential(uri, "Basic");
if (networkCredentials != null)
{
byte[] credentialBuffer = new System.Text.UTF8Encoding().GetBytesnetworkCredentials.UserName + ":" + networkCredentials.Password);
request.Headers["Authorization"] = "Basic" + Convert.ToBase64String(credentialBuffer);>
}
else
{
throw new ApplicationException("No network credentials");
}
}
return request;
}
答案 0 :(得分:0)
我有一个类似的问题,如果你可以使用WCF,我建议使用它,但如果你,像我一样也不允许,那么你可以使用这个实现。 http://geekswithblogs.net/SunnyCoder/archive/2009/03/15/username-password-amp-ws-security-with-silverlight.aspx
如果您尝试自定义xml附加,则会遇到各种问题。仅在无法使用WCF时才使用此选项。 Silverlight支持通过HTTPS进行身份验证我相信没有WCF,但普通HTTP的身份验证已移至WCF。