62,242
社区成员




//定义报头
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;