Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ASP.NET Новый топик    Ответить
 http-header для веб-сервиса  [new]
threak
GDN Member

Откуда: GotDotNet.Ru
Сообщений: N/A
Есть вебсервис у которого 4 метода. При обращении к какому-либо из них создается и передается soap сообщение. Но, ведь прежде чем передать его, у нас устанавливается соединение по http протоколу, передается http-header с различной служебной и неслужебной информацией. Соответсвенно вопрос: как при вызове метода веб-сервиса в http-header'е передать какой-нибудь свой параметр?
для обычных страниц Response.AppendHeader, а как для веб-сервисов - не знаю

Данное сообщение получено с GotDotNet.Ru
6 июл 06, 11:11    [2848741]     Ответить | Цитировать Сообщить модератору
 http-header для веб-сервиса  [new]
IAmTonik
GDN Member

Откуда: GotDotNet.Ru
Сообщений: N/A
а зачем это делать?

Данное сообщение получено с GotDotNet.Ru
6 июл 06, 11:22    [2848820]     Ответить | Цитировать Сообщить модератору
 http-header для веб-сервиса  [new]
threak
GDN Member

Откуда: GotDotNet.Ru
Сообщений: N/A
мне серверу через http-заголовок нужно передать ключ для авторизации

Данное сообщение получено с GotDotNet.Ru
6 июл 06, 11:51    [2849022]     Ответить | Цитировать Сообщить модератору
 http-header для веб-сервиса  [new]
miheich
GDN Member

Откуда: GotDotNet.Ru
Сообщений: N/A
Можно использовать класс SoapHeader. Нужно добавить внутренний класс в класс сервиса, унаследовав его от SoapHeader, например, так
public class WebService1 : WebService
{
...
public AuthSoapHeader authSoapHeader;

public class AuthSoapHeader : SoapHeader
{
private String login = String.Empty;
private String password = String.Empty;

public String Login
{
get
{
return login;
}
set
{
login = value;
}
}

public String Password
{
get
{
return password;
}
set
{
password = value;
}
}
}

...
}
И перед методом сервиса добавить
[WebMethod(EnableSession = true), SoapHeader("authSoapHeader")]
В самом методе использовать объект authSoapHeader.
Для того, чтобы передать его при вызове сервиса
WebService1 service =
new WebService1();
AuthSoapHeader authSoapHeader = new AuthSoapHeader();
authSoapHeader.Login = "login";
authSoapHeader.Password = "password"
service.AuthSoapHeaderValue = authSoapHeader;
service.Method()

Данное сообщение получено с GotDotNet.Ru
6 июл 06, 12:46    [2849376]     Ответить | Цитировать Сообщить модератору
 http-header для веб-сервиса  [new]
threak
GDN Member

Откуда: GotDotNet.Ru
Сообщений: N/A
 

а просто как-нибудь через аттрибуты нельзя? просто, например,
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:oasis:names:tc:wsrp:v1:getServiceDescription", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]


в хттп-заголовок отдает строку
SOAPAction : getServiceDescription




Данное сообщение получено с GotDotNet.Ru
6 июл 06, 14:41    [2850093]     Ответить | Цитировать Сообщить модератору
Все форумы / ASP.NET Ответить