Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Digest-аутентификация, SOAP 
V
    Опции темы
WERITAS
Дата 27.12.2011, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Добрый день. Подскажите как мне сформировать, используя WCF, заголовок в Soap-сообщении, которое отправляет мой агент.
Мне надо, чтобы отправлялось?
Код

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#"
 xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
 xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsa="http://www.w3.org/2005/08/addressing" 
 xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:wstop="http://docs.oasis-open.org/wsrf/r-2" xmlns:xm="http://www.w3.org/2005/05/xmlmime"
 xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wsbf2="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wst1="http://docs.oasis-open.org/wsn/t-1" 
 xmlns:ns10="http://www.onvif.org/ver10/events/wsdl/PausableSubscriptionManagerBinding" xmlns:ns3="http://www.onvif.org/ver10/events/wsdl/PullPointSubscriptionBinding"
 xmlns:ns4="http://www.onvif.org/ver10/events/wsdl/EventBinding" xmlns:tev="http://www.onvif.org/ver10/events/wsdl" xmlns:ns5="http://www.onvif.org/ver10/events/wsdl/SubscriptionManagerBinding"
 xmlns:ns6="http://www.onvif.org/ver10/events/wsdl/NotificationProducerBinding" xmlns:ns7="http://www.onvif.org/ver10/events/wsdl/NotificationConsumerBinding" 
 xmlns:ns8="http://www.onvif.org/ver10/events/wsdl/PullPointBinding" xmlns:ns9="http://www.onvif.org/ver10/events/wsdl/CreatePullPointBinding" 
 xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:timg="http://www.onvif.org/ver10/imaging/wsdl"
 xmlns:tptz="http://www.onvif.org/ver10/ptz/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl">
<SOAP-ENV:Header>
    <wsse:Security SOAP-ENV:mustUnderstand="true">
    <wsse:UsernameToken>
        <wsse:Username>root</wsse:Username>
        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">nVvsOMt4eeGQGqEQOZEeI64QcFc=</wsse:Password>
        <wsse:Nonce>VIj5ThAtXHfWNC6h73y3n3PouZg=</wsse:Nonce>
        <wsu:Created>2011-12-27T08:56:52Z</wsu:Created>
    </wsse:UsernameToken>
    </wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
    <trt:GetProfiles>
    </trt:GetProfiles>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Надо, чтобы в хидере соапа была строчка с wsse. Сейчас у меня вот, что генерируется:
Код

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">

<s:Header>
    <a:Action s:mustUnderstand="1">http://www.onvif.org/ver10/device/wsdl/GetCapabilities</a:Action>
        <a:MessageID>urn:uuid:9b2fe46d-2dfc-4e6c-a863-01e72c477bf7</a:MessageID>
        <a:ReplyTo>
            <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
        </a:ReplyTo>
        <VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPoypI5trSDuRPnTDlOv7qzwAAAAAACsWNFOC09UKrvWueLtfmolpkuh16AfRKvfqTXBNXJhQACQAA</VsDebuggerCausalityData>
    <a:To s:mustUnderstand="1">http://192.168.137.164/onvif/device_service</a:To>
</s:Header>

<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <GetCapabilities xmlns="http://www.onvif.org/ver10/device/wsdl">
        <Category>All</Category>
    </GetCapabilities>
</s:Body>
</s:Envelope>

А вот код моего агента:
Код

            HttpTransportBindingElement httpTransportBindingElement = new HttpTransportBindingElement();
        httpTransportBindingElement.AuthenticationScheme = AuthenticationSchemes.Digest;
            httpTransportBindingElement.KeepAliveEnabled = false;
            
            CustomBinding binding = new CustomBinding(httpTransportBindingElement);
            EndpointAddress DeviceEndPointAddress = new EndpointAddress("http://192.168.137.164:80/onvif/device_service");
            
        DeviceClient deviceClient = new DeviceClient(binding, DeviceEndPointAddress);

        deviceClient.ClientCredentials.HttpDigest.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
        deviceClient.ClientCredentials.HttpDigest.ClientCredential = new NetworkCredential("root", "root");
        deviceClient.ClientCredentials.UserName.UserName = "root";
        deviceClient.ClientCredentials.UserName.Password = "root";
    
           Onvif.DeviceManagment.Capabilities capabilities = deviceClient.GetCapabilities(new CapabilityCategory[] { CapabilityCategory.All });   // вызываю удаленную функцию



--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
WERITAS
Дата 30.12.2011, 06:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Вопрос решён  smile 


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
V1rus
Дата 25.4.2012, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 19.7.2005

Репутация: нет
Всего: нет



Хотелось бы узнать как он решен?
PM MAIL   Вверх
kletke
Дата 12.6.2012, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 12.6.2012
Где: Germany

Репутация: нет
Всего: нет



Я вижу ты работаешь с ONVIF.
У меня проблема с DiscoveryClient, для поиска в сети ONVIF-камер.
Проблема именно с Bosch-камерами, вместо трёх разных клиент находит одну и выдаёт её мне три раза.

Сравнил генерируемую мною xml c xml одного тест туля. Разница лишь в "urn:" в моей xml.

Для сравнения:
Код

<a:MessageID>uuid:7c456cae-ba27-4133-92b4-4f4f93292b4d</a:MessageID>


и моя:
Код

<a:MessageID>urn:uuid:c0d70477-5314-441e-b701-25d8e5ac92c1</a:MessageID>


Код клиента:
Код

DiscoveryClient client = new DiscoveryClient(new UdpDiscoveryEndpoint(DiscoveryVersion.WSDiscoveryApril2005));

                   FindCriteria findCriteria = new FindCriteria {
                        ContractTypeNames = { new XmlQualifiedName("NetworkVideoTransmitter", "http://www.onvif.org/ver10/network/wsdl") },
                        Duration = TimeSpan.FromSeconds(timeSpan),
                        MaxResults = 0x7fffffff
                    }

client.FindAsync(findCriteria);


Пробовал создавать MessageID сам:
Код

                    using (new OperationContextScope(client.InnerChannel))
                    {
                        OperationContext.Current.OutgoingMessageHeaders.MessageId = new UniqueId(String.Format("uuid:{0}", Guid.NewGuid().ToString()));                         
                    }


однако эта "urn:" всё равно приписывается.
Или дело вовсе не в этом?

Это сообщение отредактировал(а) kletke - 12.6.2012, 15:45
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0657 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.