下面的.net console application,添加System.ServiceModel.dll程序集引用即可,不需要配置文件。
/*
===SET CERT===
makecert.exe -a sha1 -n CN=MyService.com -sr LocalMachine -ss My -sky exchange -sk MyService
certmgr.exe -add -c -n MyService.com -s -r localMachine My -s -r localMachine TrustedPeople
makecert.exe -a sha1 -n CN=MyClient.com -sr LocalMachine -ss My -sky exchange -sk MyClient
certmgr.exe -add -c -n MyClient.com -s -r localMachine My -s -r localMachine TrustedPeople
===CLEAN CERT===
certmgr.exe -del -c -n MyService.com -r localmachine -s My
certmgr.exe -del -c -n MyService.com -r localmachine -s TrustedPeople
certmgr.exe -del -c -n MyClient.com -r localmachine -s My
certmgr.exe -del -c -n MyClient.com -r localmachine -s TrustedPeople
*/
using System;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.ServiceModel.Security;
using System.Security.Cryptography.X509Certificates;
[ServiceContract]
interface ISomeContract
{
[OperationContract]
string SomeOperation(int i);
}
class SomeService : ISomeContract
{
string ISomeContract.SomeOperation(int i)
{
Console.WriteLine("SomeOperation:" + i);
return i.ToString("X");
}
static void Main()
{
using (ServiceHost sh = new ServiceHost(typeof(SomeService), new Uri("http://localhost:8000")))
{
WS2007HttpBinding b = new WS2007HttpBinding(SecurityMode.Message);
b.Security.Message.ClientCredentialType = MessageCredentialType.Certificate;
b.Security.Message.NegotiateServiceCredential = false;
b.Security.Message.EstablishSecurityContext = false;
sh.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine,
StoreName.My, X509FindType.FindBySubjectName, "MyService.com");
sh.Credentials.ClientCertificate.Authentication.CertificateValidationMode =
X509CertificateValidationMode.PeerOrChainTrust;
sh.AddServiceEndpoint(typeof(ISomeContract), b, "");
ServiceMetadataBehavior smb = new ServiceMetadataBehavior() { HttpGetEnabled = true };
sh.Description.Behaviors.Add(smb);
sh.Open();
Console.Write("Service started, press any key to start client...");
Console.ReadLine();
ChannelFactory cf = new ChannelFactory(b,
new EndpointAddress(new Uri("http://localhost:8000"),
EndpointIdentity.CreateDnsIdentity("MyService.com")));
cf.Credentials.ClientCertificate.SetCertificate(StoreLocation.LocalMachine,
StoreName.My, X509FindType.FindBySubjectName, "MyClient.com");
cf.Credentials.ServiceCertificate.SetDefaultCertificate(StoreLocation.LocalMachine,
StoreName.TrustedPeople, X509FindType.FindBySubjectName, "MyService.com");
//cf.Endpoint.Behaviors.Add(new ClientViaBehavior(new Uri("http://localhost:8001")));
ISomeContract sc = cf.CreateChannel();
using (sc as IDisposable)
{
Console.WriteLine("Client:" + sc.SomeOperation(15));
}
Console.Write("Press any key to end...");
Console.ReadLine();
}
}
}
对代码不太理解没关系,现在重点是SOAP message,去掉代码中唯一的单行注释,run,使用tcpTrace或其它工具来查看:
(本来想兴致勃勃的写一篇,当看到血淋淋的SOAP msg/WSDL,并且要分析,太TM累了,没老赵那份闲心,打退堂鼓,闪人,有兴趣的同学推荐阅读WS-SecurityPolicy Examples)
8月26日:既然标题是感性认识,那还是把SOAP消息,WSDL贴出来感性下,不解释(其实是无法解释,真要解释,那得写个长长的系列,从XML Signature到WS-Security到SAML到WS-Trust到深入剖析WCF到……,没那闲心,再说我是半罐水,没那本事:)
client request SOAP msg
http://tempuri.org/ISomeContract/SomeOperation
urn:uuid:7facce06-0318-4add-842e-d883f150ca5e
http://www.w3.org/2005/08/addressing/anonymous
http://localhost:8000/
2010-08-25T16:04:30.452Z
2010-08-25T16:09:30.452Z
Jw8IjGZ1i0ib2rthgjUV/vuD6EU=
qIkV9XsDQMAVYlwUqONf6gyzm3+8DEVuWB1J+4sHUs5xWRWUTlrBQvFK6u9rIG1aBlHSDOvjHdLwsz0BS3NvigemqTPu+r+AOqmL5/kWIZ/kx+d93YEMmbxu5mImwZ7Ep4tNrTU2ki/weAjdW9MidC/iysdPZ1KO1MysANB74tw=
0
24
b8iYHNwm6G9y1/hPjBx+xA==
4Tx9T//CwTucEi1tMXokAQ==
MIIBtDCCAWKgAwIBAgIQGwo/zn33qJJCf6CBuEubRDAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTEwMDgyNTEwMTUyOVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMTXlDbGllbnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOITMfevwaVli/spLmgfHi18zroNWB86rk0xza4tAcABCVo2GS+aIw0mvXBttcuHdchdo5KcNn+9uR/U+q6R7krpsPEImjcDsTNzq3DAktf8O0npfQHM0zcFXMz33ZDXeaL0DS6buN8Pf5baiTF2NnkrkzcyYhLoMQwU7ImBzDowIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAApURIsbCshaDNsGUSTc6nPCG7q2kAgiKOfKMEzOQ/MKOV/209igBPta92Xd0dsb82C8Vj72J5udmfz4oqwKSWE=
OeIsMR3fqltIi+IAObx1i932EXNJkcv/KdQOMKYhgzv1IiSdh4sXOoPHBOO6sTCkxB0x7OqDVdCN+V9+IR+TYr3dF1H11vDazBxwMTnNvj5zeAEQY/IY1TbDawT9+w0saSJsK0ZGTmAp3DqyWGK9pJrShVLRYUokRolkzIQbideARgqab2pjHFkZNMHGgrCQ/HuB712a4RCxGk9DlMzsSe8bl4066wuhQGDtuJrV9kV+U+1GHNu9udo/iWxoiiyJ43h78EyJSTcNhgazAXaLhwfUqR02TsRPRty3+I2HvYbgqr33Y/T3Samwh9GSmVObeKhNOvCIXFEwkHOtweHcvFpFOkJmH+hExQxMeJ/G5T3v24RItL9w6u2NZ+rv7iveu1rECvcbxuvcLQH0oxGLwhZMXN2JGSEMb+CgjQw5g2VbcBRKlEf9YrdD92uAiRH8Vp9p3KrZTK+LzkTxMgeGc4rqkzJ5Lq73Ofx3uQy8rq4p2PigykXGPo0LmoCVecWHexsP9mpjgP87pVm5TBkh12Lrn6Y6cf2b1D3/7JtGou2yFpm22QxDMMM4oDBLbT3IoCL1QXM3csByzzst7TrmZKLjJCTAJgeRaQTZmcMJL22M9iL797l553HcjrGLdacoUd5Wtsu2o4wGs2sTnLs/Y4GjTD34A+KGrltVUdf0MdjX0RmYsonJoSdxFanMRlGtnUlpwvFMvCPdl4fT6XpkqjTSkJQKzYbTncNBXGk5o8nH1tXYLE1lfx3yKsbtAjFHsbYBYqoOKK9Qrka+15HqLGO1uBY4ThFNUvFVYJH42jXLF4dGjbAhtlt2NJSSmNp3tWP02V+cQv2KVCs3Qnlq8NuV4O8NVUOfScUhj4vKQ5AEdW+vq5gy7NKVQrJlzg4/LJDm8Ukrfieth+lIKx5qFj4CemjPTbtL+LqMrOHP6Oz906t4xgbT8zYCe0aGwWK5NtZyVFztHHu4AFjsYoVvKKZWhcwpDXFtgdjpmtC294xCcbbOPoboRhpQRL4lqvD+nsUIOX1h2WLatLEOyIQaPg8wkULbMZxu1XmkF8mNIxYqm+TviD0AIHIPvq2WB1VtWiF4ImcF7NlCItlrAK0H1RkJKlC410oCEYd2sroRjtXQUqTzS/TG7EGVmFlRNj6N9yRh/yEdVIPRaN19PQASqJm7eJFXqUitCTB4BZEAVNw3keHJJa4rxjzH3QwvhL1Qimuewa07f5Aim2V+U8SF5eBT6RbQzK2iZie1X4921dGsgZr93A2HirIh+WieUvPStN6xD859dz+OKDKbiBHmuQz/Q4/hWSFF6igU0pJ+LgJJYDxVC4xJo2XhTVoplT8iKHlK9Dudrid674GF3AVUp7jkuoOjNHd2D+1NWJFaHff0TiUc5iXA+DwceOScZUPrB9K5GifD4exxM3s2gWm4n4s/HD80oJOqTUOTKIHeVIs1CFubj4LF7ZCq39sXtI4YO5GjxTio4W7pC8NtY7V7VR6Vm60ikYMErww3FfqAia0crEfRm0vOiNU3bfItXPDGJCbzYn+XRWjvcfD3qzklfpkxMzJiCLCdeXtGM1m0EX9MXscafH6PJTbN1e44fxbEYDLbqy4rQ9pXAdmEW8etT/hrnVVMwNBSTBAnSwJRlGVmXGCP2VCY90sdkStpdQXWqKx+HrLgfHbX+IWANgNhFWlgMD3ju7yg04NrOVhGT4dFfBZ/BqLmJJZ7DgRLG9ikcbRadUnUPpN4U4VxQRI/L9CXOPTZVusG9U9B8SSZTYKS3LnEOKhz/af9B+ou2Gr04hEO5E4+1PBO7tZw+sz5NB5XiNij6KyWnpVSD9xKIJm7TxRACd80DWMsunc0LCAtHl9q9eUcyRHi51ZP8hXBuaJAss91W5rFFjuq3PoYu+iK3Bct0O847fALUIThRt44MXvJkw0n4BWayoPOa0Mah4tNEmTMY+20JoaPBeme4ZWlvTWIMoquOjEWx0DqWn66XYkjDXeFXn7atS5fj+Al9XWy1I7VnmFCsK7Wg2haGay4O3nkuAoQqQqM0bJnnxjEakpOjjOxBX1XVHLR+A8E3FZGPvKLUG6T2dIXz/YHIAH9vgElNIxQNJDgroLrM3Zq+jAz7I9bZV3KVmopsQP9FGJSXIXL9zb+N5M2lPmt6VJO4VrzexLzy5bPGZjoiZ8ToCdiB5AELsE94O54Ui0V0W7MIJQ1nWBPMWeNDRhb8/IYS5QPCNVi1b0a3MOdMBQBQ+9mV7qubmH+jPssmrIPmUTDhr9HTj5wFCc5Kgb+3TkPOtR/BjukghiJC+D91jE40TYZXX8RUbybTefnNUAZoOiDAV5qzyBSolNji5p5jBhdnoXYN5DD7xNyzjl9jNp9v4cvFvnalDD0+VZzgyUFcs697D0Q1YXlp4rr2Q/tABFlwAlLSJ5xj9YulPQ6AYiZWij/5zkWPlta/FWipWVSRWLOXdpJwk83WHwzE1jmwFY2ufIIkI1q4bSUfVdf5qRkeNftDeri4MMLJbBYDd96tfwCqlTuGOrKvdjeXbjUroeLLyQJ+zfKDROjIgAc+IR68DodhxR22Ajp+8EV/J1zDMGISVHvhpoc4F5xVkl3WIz4Rrsrkw8I1fpuiIZNuhXuM5PhYZa/HCKTu3gQWlSsLI2HGXtuwQn4mUiDDov24gv+jqFJisGYNHTesjtg9heZzwTBa0gW9S/BxHA/m2YDI5l2Us5FvYfBAp/PHlzPVzyzOqQgb0gjfZ3BHyB42uNibUgz2qtrXnUGBV+WUP1rCqaCqaAyKBsxfbgN7gM0iwg=
SObswo46El3WH+dQXbtNbG2g48i+5YDCOwHoTasO67gCntuZkR1DQ3TpsrsPzYjlVvQMQYijeOWzWIdHLwM6gYfwxYSwDh227GAHwRlj1Sj0UGB467OnGAuSd1uw0cZsIyMPna1dDKB3DXsm5Zaw9Dv/icToqdE6l75B21xdEnDBgbnOfV0W/C6O8W0dz+W2y5Zyrau7WnI05NnJFyCIiGo3eNPPJ90Wt7isTr7sUnjYw4Kvm9FbSfgK01QlW21ZQoS9zrDIzRoKpOKF38ONx6GAiRJas63kcEl3PBq9Kg0UdQYH2NjrEFPurTfBdVoXCURH9XMMVKt3AHvOj5nVvFBwi5KITZaZzm6lGf7OpleL2d5osoeFpugRQkCej29e+pJUB4CSwiU3nR7F5Ffb4dtIuMtEvLoSw4yGV/xt5O9nyOMvdSzr8a7VWawkRRvnLwLC3vRlah1kll7Vm1sgDwRvVBPQWKvaBV+gqY5bIgZAHnKOeK5A9HNDKyWnRlgTT3Av2/7ubcly6mcLwhwzjUubi7/o8sUGxcLtWQTmPFtI3o6k+IkwwUPJDkxuS1nxmjxKA2tSMBw80Iu3ZNstjVapmNxZrJmEhdyfDz2Vv8YpyMY5rUuNkS3u2ByrG+uT8a3v/ekHEMz6w3KPhtp1prmffOQIAvIyAKKGCnOATcLkLlJrWbhsSGsX385fIeQs1AF0WF14JdxnRJS8cGILQnjxzCm9SS3I+qM2ohjC7Q9htLgT9ABMt0S0v2thNkfrnzXzZr4agESFgU/Fsmm69SsPXvjefZyGAHPPl5fEESu4C+lvf7USWqG/8Y5plXvPAfuZn257sE+5tQEx5h+mS+K1/CPif/U3/uyasL165XTMmMPkJb/5L42v4Qsflaj5c3WEl+BEIjn+Zqq+B5K/U7viYrMttPARhQry7useNfKZdLr645phvDt1vhZNQraW2jSJ9LX+acXdkrW72apWtdoMlEke66FsPPWVHw/CnqmRZ6hLJ4UjwWA+t+Qx22ub8eYpFXtRxcfLuVnDKZz5TAajqzoiMXSeSr8OYYPm0JW4eCQaWTmSlCQ/z3UvAH0308wBQRpKXi4W1Y4LVfxcY9kUwRQuxKGU+6vFE+PrcCJg4z6GxSoElDxllMECKuu+XRUcTY8YyDd2iYg7Igl6tA35YwHTyrAqGeXbsIPslDlQ/1wtAprrOgR/24W9a/QBOmrMiwohKzFF4Pn06wu8z2t0gGEV2oibeRrd7Ga+4YNcFjPq3RX6R0T4kmp/R7YXY0rYYUW6LSVfG9lt8ZmkrdD3bwFizO7xcghrs42Ac0ZcTBFF/jkpoRPKvin+lnNgP/uN1QN0+aKa3pp+y0Hr5h5VU5JuJnRriIG/jlT+MEg=
bFaKXbJWXpX2c34J8E/JBSasfom4fMX7Zr3mysTKL92WJ7dLHmu0cG0gb+ICF/YtOZj2kB1RSCNkV4vHrDBPfU/Ke294+4kOOqZacYfayaE2aDrH1UMBOYebNHtvNVGH
service response SOAP msg
http://tempuri.org/ISomeContract/SomeOperationResponse
urn:uuid:7facce06-0318-4add-842e-d883f150ca5e
2010-08-25T16:04:31.063Z
2010-08-25T16:09:31.063Z
So9bbUZ//6FShYKoT4RWSNJXx5U=
0
24
JRAkR4cW1AgvXffkm/zqiQ==
So9bbUZ//6FShYKoT4RWSNJXx5U=
RzAQKnDPSui8uVrNmZI3/A==
FQEzq6iOj1YZikI2Yvy6cZjYiMBNoWLumMtn1l5ZHr3CqMNAxygPhwLDZ4yFGpnu9LbFf5t5cNj1cXx81dVXdz6o17o1XX260u52/SPnN9ld8TBJm9kQItQxVEhrU7mVqJUO7lA/pCf36cGVXX+ZlTCzRUOJN97I391oREMUJoyFQvDNpHetSzmuvzUmJYbE7KACUZiuESdcmXFcF+YToY2C2pS0eQWURkzzq/j+tVVMNZ97MtXV+p3KOfsKHf2N5q66bf9jqcsuOPTBL7ADQVZ9vtHwxioPtB5JSUn7RhFIr9LF8z6q01wmG2LhrCOW+R8tWyXfiKrmvAXcTQH0fohAVglKm/xGHHMddzNAq8E=
AtsAdvSnRvyNEIf7LF9s+L9gVZFv2dTG+f91WHoPNV15BnE1H4Ol0jNDTx2ObsjzQE980xK+VxTrMYO0j1516afBxkZKfdwtBwMxqvtWL6b10bKaXik0/ZSWICS4GI+o+ESNzWsi/6dszrkTSreklwHYeDaOhtb1U3Y8ZcppO5uBH17TrJHI5AqeTviCGv/HVvEUgEnuMORnq8PfNrMfcGC2VfvnRpt3NVfnZNlRgKHIyKBXwh4Ql9DTeciDmfaEbXlhUgL2D+eXLxb20gaqoGzPtnfhzUGsJ9Fq7auT96GH6OZPHz5XfTT5bMyvZkC7B78hyGROFEGJvlCK/JY2WwUc2CalEB3hiEzxknvVuCAbvA9BTkuHOR3udMTE7X6c/D42AUmA1DAqKyXXeCXNdwRfwIAAjMhCNEgdTqTuir2JHJ3Sbi2oDTy11PyGUMBXFyQZQHaCZdFvtDWrrSr5fW5lb4Kesl9DXnNqyjPNSppUFgInTAq4ymb3TLcm9B1QJVRkbUHlL65w2jpPRVKNARuBz0JzKa8opDfCcl3BTuM=
OsguTP5FCI7+ldMCRNcyf8Ke1L1YTrrpICqKeym4X0RFLtDfzCf+I9nktec7pbXxJcTWoSr0nSIeyUkZmJ7RjC5qnUqKFl3P8ZKmBp+BKUWF6jWPuuoEqifZh3X8uPyHHH5WHrD/zhemwtjahX8BsO4Z7keH5xhdGry5cexenk0oqFGjdWdGCeyP9cMYTGqIdDJ1iztEZQPApJGJpqnHUkKi69OjM7evzCPc2Hl6IlSt7nvPlFdFfk6U0gE5d9kdCUYO10QTHNYNaes2D8aFtzykQtDlRKal5+et877UUEES1nYWw9F9vDA4vqipazFC5/hQKAM/ZhBF53+Bh6oE3rApRjhndOzs3Iau8ZOutqQvPU/uYlbVsRc0faco3kNGZKCS9qDw3YISGMC3391le/sgQ0nA5bXB33b39PBF/KHJAsbMiKbqwUvh1Q93UPWvwZq2Bq+rQ5Vr5jPgQDGhY2rJ97NqE9uadnDdd38EkgnAekG3Zz4DjSmT/ATNRKHwkshjd0McZYVO0a3P0PqKDMzrNXCHZ9SwzdTY50nAo8sRTFnn7sDFUPgsSJ/k8VOTsaRbtYY4RBDOe7AOcgcFCXXlbAqwu8CPQNynP5zgskwsL/l1HRvQf0+/URJ3UU9JXZ1k1uEufzmUhJfEQY6VZxY3MsHNynruM01rPnVRZs0M++WJSzVfRy2ObsOJEmkr6zrIwPiHXz9tXJ9Ppp3yhbnuZ1kRCGESe9qc6RqJ9bV6NBEbUBHiw5/ZvpvR63hSSee04t6PlrfdfL84JJgXvggne1nL4qKJwfnaOJ3Pr5wXXoWGSyjXQgTedmD+MKEa0audrgHpxer3Trq9K5/q6WjtDhAfZy03c6OqXHFVrdpKDxk/xNupG3AVV2VASWJSAi+lykkM6LL90rWjvKcpcAysmNwbFZmbkoHztTh2Mr1QuS1B/AWRoMU2N3qwSDRpWxKXQQ3w13a0CBQwfBf7fBET47RA16WxpjiF8l8pCfelDt3N7q40BSv1F0T1cei/sUhOUPuDrmO8ah+zv9hisaAApHj9R4d9HIUgoVu/fWbtU/nOwLHLbfebgWr9gRKy9ObDusRKmElbkyao7ZurRNxDOxS4u4d8Tw52uNzbHSWNg6aVYAmbpi7Py65k0TCFQMXW9+sW43qcFCFEqKrc1gaHgeV+CmeLHAYfrqbEX904SlvwTFSbjN6vXWmxI2Y5XxphsKMOovKUYIfXgkFeIAyx9w1zDsmk7DONBUF//7WAboeZMfx2zGqzeaBXqQ1PvDee5sWns/HShgtDJb2Tb4mxY37kqOr+/LgXlDgFNHgdiXEAuMEdPb7dkwmLWo7O5yi3dcObKpabQdsaZegPgMRRIk54xziTnWf3Kp+F6O7WyfmE0T1Pa8s1QbzujQZJMwzfsplr83dNimZn7Sdj6scr7f+95lB0AZ4acsIsalnHsFqUgRkMDFTO9+ziX/rFxh07MycmybtnHpwM4VPq93oJCUmDITnZk+GUvpPfTpuQxU+DonLvw6d1lJn5sQjtRP9c9YUJqGYjaqP+Xf9V3nzUMv3lrWAelqMmrs79gaPZyD5KAA203HZ2OqWf0txjL98fZC7I4YTb2pbnX/xcHKiWo7gAFU40/69uv29ngJJ8LVVTccF849rxsikrEgSFMNOFL+nWe0O8ne0hqj/s1UXzapsnm2LfeG2sbpXZIWiWalridOv93sproBRsxlmfPmQw+lGOFarHotRg3jNPcEolAwMsnV3YPcE8ONxAtEtqvx05dw1RiNlW/n9Fxcdk51sWC2LqImyFOkWWp3QAeaWgNnq8dKbduGlfXPE+NL4SYN+i5pvxlEyYvd/QrlzHKMLxyfkeKvu/VFnGA9VYKnXdJXuMyHEJszjTGELAH9TqWqqz8+TDFcYziwR9VsL3glCGjti13kdW4bn8t/n2uKbDqp4AILVJD9UHYyPuCNNYBGQhLxvZBGwbOPvlZT2GR1FpZHpIsldzbIKp4dTyooYz7e4zJLC5vnazrtwHBsCoEJLtm8JwkMdSVG+y2g+PmvSbDAciqaw1rbsQ5NwhDcIHynpg/EFKRNWdSy8ENy135K7y0IYy7vJnXoCKr8CoUhtrw+0Xu2iEOk4SmXA5KEMmYLCnCVzjnDew6jCU6j/Oq5sfceaVP8ciL75W/L4XcZzJ1yKi2qFizZ38XrP3HKh7uYCaAGGuCHW96avItNDiGvxwIGdu3vWx6lRthUf4yXWutr9u/92PPyAHI6bPdA9wpfcIG7H5aX6PwBnmAvBVFoOfmZexxs4Vz34Dvvfau5QQmikGia7S5nhsE/nBYcShzpiqZOzqh6ESvtIrAbzOFJxaEkfY/RsmCBTrLjy8oBxO1i7fHZefNqMJ2SXimaK10MRN6HAXLaMf68cwPBkBjjUvnOXIkxZON7RuqL9uX/uOGZFIEeGUrge1aWdS/Jjgv6/9YrKFrUPk82ZmNdKQDLRRsw1UwCxFJeTzEHHPEIM1GFTxNbGZtQAp6jkcZr7Fx91muooBGG3yhHQFhay0LeHY7xSck3FMc01MFMeH2hVAoFymOZFYJMDw5M7jWGaFZnSvTkNs9kc6o+fFUptxm3x0uV5aKgdR/kS6jcFz7VdOAXV1HMUrO2gtBg51mLxgSHj8KCkwPG5AeNJj4LhmQsKNVD6qeMw6MFQL4LLCo2TyaJFCoTppPhSQ34rYidTtAH5CI6/erYWvi1d3lniJo0/K/aZN0Ka8BEr+g0mHsKmuy5KGAFNNnTcYpiNagSdo0OjBGG33lmpmNPxzNFY=
Cfab1ssHgyEdtXKDZh1l66RVDKH6rSvwSGeCpmOSN19LDBVbqi6vW7lmo18LdhT9SSacdTG+rTBeY6bu02wd9gLtjSBJvPPItWK8frll9gTBDR+1biloE5+iOVyF9pNoS+hPFS/pF+T1/Tvd4TA8Lw0CnacFYx0Rd3hLOTUE09pcYxXP4eWrIk79PVFKzjeT
WSDL(部分)