webservice不存在使用cookie进行验证的方式,为了能够控制webservice的访问权限需要为相应的webservice方法添加相应的验证方式,方法是可以给webservice添加相应的soapheader,每次调用此webseivice方法的时候经过相应的用户验证。
首先为webservice创建一个验证时传递的soapheader类,定义好需要传递的验证信息,比如用户名密码等,
如:
public class HeaderUserSoapHeader : SoapHeader
{
private string m_username;
private string m_password;
public string Username
{
get
{
return m_username;
}
set
{
m_username = value;
}
}
public string Password
{
get
{
return m_password;
}
set
{
m_password = value;
}
}
}
然后定义一个soapheader的属性对象,比如
private HeaderUserSoapHeader headerUser;
public HeaderUserSoapHeader HeaderUser
{
get
{
return headerUser;
}
set
{
headerUser = value;
}
}
相应需要验证的webservice方法前添加SoapHeader属性声明,并且在相应的webservice方法中添加验证方法,
[SoapHeader("HeaderUser")]
public string HelloWorld()
{
Authenticat();//用户验证方法
return "Hello World";
}
private void Authenticat()
{
if (this.HeaderUser == null || this.HeaderUser.Username == null || this.HeaderUser.Password == null)
{
throw new SoapException("User Denined!", SoapException.ClientFaultCode, "Security");
}
}
如此,编译此webservice,便可以通过soapHeader来传输验证消息了

浙公网安备 33010602011771号