null自定义SOAP标题可以限制调用服务的用户范围 using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace ")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
0 public SecurityHeader currentUser;
public Service()
{
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod, SOAPHeader("currentUser")]
public string GetResult(string queryString)
{
if(ValidateUser(currentUser.UserName,currentUser.UserPass))
{
return "你发送的字符串是:"+queryString;
}
else
return "对不起:" + currentUser.UserName+",您不是合法的用户!";
}
//检验SOAP HEADER
private bool ValidateUser(string user, string pass)
{
if (user.Equals("user") && pass.Equals("user"))
return true;
else
return false;
}
}
//自定义SOAP Header Class
public class SecurityHeader : System.Web.Services.Protocols.SOAPHeader
{
public string UserName;
public string UserPass;
}
下面是客户端的调用 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace SOAPHeader
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button_Invoke_Click(object sender, EventArgs e)
{
SOAPHeader.localhost.SecurityHeader header = new SOAPHeader.localhost.SecurityHeader();
header.UserName = textBox_User.Text;
header.UserPass = textBox_Pass.Text;
SOAPHeader.localhost.Service service = new SOAPHeader.localhost.Service();
service.SecurityHeaderValue = header;
this.textBox_Output.Text+=service.GetResult(this.textBox_Input.Text)+Environment.NewLine;
}
}
}