新しい Web サービス アプリケーション プロジェクト (名前は SoapHeaderAuth として設定) を追加し、以下に示すようにコードを追加します。
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Configuration;
[WebService(Namespace ="www.XMLWebServiceSoapHeaderAuth.net")
][WebServiceBinding(ConformsTo =WsiProfiles.BasicProfile1_1)]
public class Service:System.Web.Services.WebService
{
public AuthSoapHd spAuthenticationHeader;
public Service()
{
}
public class AuthSoapHd: SoapHeader
{
public string strUserName;
public string strPassword;
}
[WebMethod,SoapHeader("spAuthenticationHeader")]
public string HelloWorld()
{
if (spAuthenticationHeader.strUserName =="TestUser" &&
spAuthenticationHeader.strPassword =="TestPassword")
{
return "User Name : " +spAuthenticationHeader.strUserName + " and " +
"Password : " +spAuthenticationHeader.strPassword;
}
else
{
return "Access Denied";
}
}
}
上記の Web サービス アプリケーションに Web 参照を追加し、[Web 参照の追加] ダイアログで Web 参照名を localhost として指定します。次に、次のコードをクライアント (ウィンドウ フォームまたは Web アプリケーション) に貼り付けます。
localhost.Service objWebService = newlocalhost.Service();
localhost.AuthSoapHd objAuthSoapHeader = newlocalhost.AuthSoapHd();
string strUsrName ="your usernmaen"
string strPassword ="Your password"
objAuthSoapHeader.strUserName = strUsrName;
objAuthSoapHeader.strPassword = strPassword;
objWebService.AuthSoapHdValue =objAuthSoapHeader;
string str = objWebService.HelloWorld();