[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
public MyServiceClassHeader msch;
static string Convert(string str)
{
MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
return BitConverter.ToString(MD5.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes(str))).Replace("-", "");
}
static string GetMD5Hash(string str)
{
string temp = Convert(str).Substring(8, 16).ToLower();
return Convert(temp).Substring(8, 16).ToLower();
}
[WebMethod]
[SoapHeader("msch", Direction = SoapHeaderDirection.In)]
public string Login()
{
if (msch != null)
{
if (msch.MustUnderstand)
{
string UserName =msch.UsN;
string PassWord =msch.PaW;
if (UserName == GetMD5Hash("wenziyan") || PassWord == GetMD5Hash("811208"))
{
return "登录成功!";
}
else
{
return "登录失败!";
}
}
else
{
return "消息头不是必读的!";
}
}
else
{
return "没有头消息!";
}
}
}
public class MyServiceClassHeader : SoapHeader
{
public string UsN;
public string PaW;
};
public class Class1
{
//
//TODO: 在此处添加构造函数逻辑
//
public static string Convert(string str)
{
MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
return BitConverter.ToString(MD5.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes(str))).Replace("-", "");
}
public static string GetMD5Hash(string str)
{
string temp = Convert(str).Substring(8, 16).ToLower();
return Convert(temp).Substring(8, 16).ToLower();
}
}
protected void Page_Load(object sender, EventArgs e)
{
localhost.MyServiceClassHeader MyHeaer = new localhost.MyServiceClassHeader();
localhost.Service1 service = new localhost.Service1();
string userName = "wenziyan";
String unHash=Class1.GetMD5Hash(userName);
string passWord = "811208";
String pwHash = Class1.GetMD5Hash(passWord);
MyHeaer.UsN = userName;
MyHeaer.PaW = passWord;
MyHeaer.MustUnderstand = true;
service.MyServiceClassHeaderValue = MyHeaer;
string flag = service.Login();
Response.Write(flag);
}