本篇隨筆主要是關於Flex與asp.net的WebService通訊,其中利用了SoapHeader。(如果你對SoapHeader不瞭解,可以參考WebService開發(一) 如何使用Soap頭)。由此可見WebService在跨平台方面的優勢。
ASP.NET的WebService代碼
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://davidfan.cnblogs.com")]//名稱空間應該和Flex中定義相同
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
public ValidateSoapHeader header;
[WebMethod]
[SoapHeader("header")]
public string HelloWorld()
{
if (header == null)
{
return "請提供驗證資訊.";
}
else
{
if (header.Name == "admin" && header.Password == "admin")
{
if (header.ExDate < DateTime.Now)
{
return "帳號到期";
}
else
{
return "驗證成功";
}
}
else
{
return "使用者名稱或密碼錯誤";
}
}
}
}
/**//// <summary>
/// 繼承自SoapHeader的自訂類
/// </summary>
public class ValidateSoapHeader : System.Web.Services.Protocols.SoapHeader
{
public ValidateSoapHeader()
{
}
public ValidateSoapHeader(string name, string password, DateTime dt)
{
this.name = name;
this.password = password;
this.exDate = dt;
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string password;
public string Password
{
get { return password; }
set { password = value; }
}
private DateTime exDate;
public DateTime ExDate
{
get { return exDate; }
set { exDate = value; }
}
}