请教soaphead类保存用户的信息
/// <summary>
/// 用户身份验证类
/// </summary>
public class HeadUserSoapHeader : SoapHeader
{
private string m_username;
/// <summary>
/// 用户名
/// </summary>
///
public string Username
{
get { return m_username; }
set { m_username = value; }
}
/// <summary>
/// 密码
/// </summary>
private string m_password;
public string Password
{
get { return m_password; }
set { m_password = value; }
}
}
/// <summary>
/// 根据用户得到当前所剩短信
/// </summary>
/// <returns></returns>
[WebMethod,SoapHeader("Headeruser")]
public int ResultBalance(string username,string password)
{
SMSLib.ServiceCentrality bll = new SMSLib.ServiceCentrality();
return bll.GetBalance(username,password);
}
#endregion
/// <summary>
/// 发送短信返回成功条数
/// </summary>
/// <param name="NumGroup">号码组</param>
/// <param name="SmsContent">发送内容</param>
/// <param name="username">用户名</param>
/// <param name="password">密码</param>
/// <returns></returns>
[WebMethod, SoapHeader("Headeruser")]
public int SendSMSContent(string NumGroup, string SmsContent, string username, string password)
{
SMSLib.ServiceCentrality bll = new SMSLib.ServiceCentrality();
return bll.SendSMSContent(NumGroup, SmsContent, Headeruser.Username, Headeruser.Password);
}
}
//创建webservice对象web webservice
SServiceSoapClient serviceSo = new SServiceSoapClient();
HeadUserSoapHeader s = new HeadUserSoapHeader();
s.Username = dt.Rows[0][0].ToString();
s.Password = dt.Rows[0][1].ToString();
//dt.Rows[0][0].ToString()是获得用户名
//调用此方法的时候我返回一个金额,
int resultBalance = serviceSo.ResultBalance(new HeadUserSoapHeader(), dt.Rows[0][0].ToString(), dt.Rows[0][1].ToString());
if (resultBalance > Amount)
{
//描述 我本地是sqlce 返回webservice 跟sqlservice进行交互
//疑问 为什么我webservice是4个参数 这边要必须传入一个new HeadUserSoapHeader
//或者new HeadUserSoapHeader().username有什么用
//我前面返回金额的方法都已经传入进去用户和密码了, 我在下面这个发送的方法 为什么不能因为HeadUserSoapHeader().username
//如上我是new了一个HeadUserSoapHeader把信息存储起来了,
//疑问 我每次调用的时候都要通过创建对象来拿到这个服务器的值吗
if (serviceSo.SendSMSContent(new HeadUserSoapHeader(),NumGro, ContextGro, s.Username, s.Password) > 0)
{
MessageBox.Show("发送成功!");
}
else
{
MessageBox.Show("发送失败!");
}
}
else
{
MessageBox.Show("金额不足,请您充值后方可发送!");
}
//创建webservice对象
SServiceSoapClient serviceSo = new SServiceSoapClient();
HeadUserSoapHeader s = new HeadUserSoapHeader();
s.Username = dt.Rows[0][0].ToString();
s.Password = dt.Rows[0][1].ToString();
//dt.Rows[0][0].ToString()是获得用户名
//调用此方法的时候我返回一个金额,
int resultBalance = serviceSo.ResultBalance(new HeadUserSoapHeader(), dt.Rows[0][0].ToString(), dt.Rows[0][1].ToString());
if (resultBalance > Amount)
{
//描述 我本地是sqlce 返回webservice 跟sqlservice进行交互
//疑问 为什么我webservice是4个参数 这边要必须传入一个new HeadUserSoapHeader
//或者new HeadUserSoapHeader().username有什么用
//我前面返回金额的方法都已经传入进去用户和密码了, 我在下面这个发送的方法 为什么不能因为HeadUserSoapHeader().username
//如上我是new了一个HeadUserSoapHeader把信息存储起来了,
//疑问 我每次调用的时候都要通过创建对象来拿到这个服务器的值吗
if (serviceSo.SendSMSContent(new HeadUserSoapHeader(),NumGro, ContextGro, s.Username, s.Password) > 0)
{
MessageBox.Show("发送成功!");
}
else
{
MessageBox.Show("发送失败!");
}
}
else
{
MessageBox.Show("金额不足,请您充值后方可发送!");
}