用soap调用带有验证的webservice,该怎么写?

7年 2017-01-12 02:05:14
webservice代码:

//定义报头
public MySoapHeader soapheader;
[SoapHeader("soapheader", Direction = SoapHeaderDirection.In)]
[WebMethod]
public string SaveUser(string userxml)
{
if (soapheader == null)
{
return "认证失败";
}
string msg = "";
if (soapheader.IsValid(soapheader.UserID,soapheader.Password,out msg) == false)
{
return "认证失败:用户名或密码错误";
}
string a = "bbbb";
return a;
}


调用代码:

_xmlNamespaces[URL] = XmlNs;//加入缓存,提高效率
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL);

if (!string.IsNullOrEmpty(userName))
{
// request.Method = "HEAD";
request.PreAuthenticate = true;
NetworkCredential cre = new NetworkCredential(userName, passWord);
request.Credentials = cre;
}
else
{
request.Credentials = CredentialCache.DefaultCredentials;

}

request.Method = "POST";
request.ContentType = "text/xml; charset=utf-8 ";
request.Headers.Add("SOAPAction", "\"" + XmlNs + (XmlNs.EndsWith("/") ? "" : "/") + MethodName + "\"");
//soapheader验证

request.Timeout = 10000;

// SetWebRequest(request);

//byte[] data = EncodeParsToSoap(Pars, XmlNs, MethodName);

Hashtable ht = new Hashtable();
ht["UserID"] = userName;
ht["Password"] = passWord;

byte[] data = EncodeParsToSoap(Pars, XmlNs, MethodName, ht, XmlNs, "MySoapHeader");



WriteRequestData(request, data);
XmlDocument doc = new XmlDocument(), doc2 = new XmlDocument();
doc = ReadXmlResponse(request.GetResponse());

XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);
mgr.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
String RetXml = doc.SelectSingleNode("//soap:Body/*/*", mgr).InnerXml;
doc2.LoadXml("<root>" + RetXml + "</root>");
AddDelaration(doc2);
return doc2;


这么写服务器断的soapheader一直是null
...全文
265 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧