(Это предложение может быть далеко, так как я не уверен, если вы имеете в виду какие-то специальные заголовки WS. *, Или просто какой-либо пользовательский заголовок ... и я никогда не слышал о WSE)
Я вызываю веб-сервис с user / pass в заголовке следующим образом. Это не рабочий код, но фрагменты должны иллюстрировать это.
На клиенте:
string userName = "someusername";
string password = "somepass";
//create the custom header object
MyService.AuthHeader authHeader = new MyService.AuthHeader();
authHeader.UserName = userName;
authHeader.Password = password;
//create the WS-proxy
MyService.SomeWebservice someWS = new MyService.SomeWebservice();
//set headers
someWS.AuthHeaderValue = authHeader;
someWS.SomeMethod();
Веб-сервис:
public class SomeWebservice : System.Web.Services.WebService
{
public AuthHeader Authentication = null; //For receiving the authentication header from the SOAP client (you will never assign this property in user code, .NET handles the plumbing based on the [SoapHeader("Authentication")] attribute
[WebMethod(Description = "Some webservice method")]
[SoapHeader("Authentication")]
public void SomeMethod()
{
string suppliedUserName = Authentication.UserName;
string suppliedPassword = Authentication.Password;
}
}
Класс AuthHeader: (определен на «конце WS»)
public class AuthHeader : SoapHeader
{
public string UserName = null;
public string Password = null;
}