Перейти к контенту
Форум о видеонаблюдении

Рекомендуемые сообщения

"Аутентификация

Осуществляется посредством HTTP Digest Authentication. Имя пользователя и пароль ожидаются в кодировке UTF8."

непонятно зачем это сделано, вместо простого процесса аутентификации в запросе Get, этим Вы уменьшаете количество достоинств Вашей системы, в частности простоту.

Нельзя ли Выложить пример аутентификации посредством HTTP Digest Authentication на C#? Мало достойных источников информации.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Web-server также поддерживает Basic Authentication, которая много проще Digest, но слаба почти также, как передача параметров в строке запроса.

Почти все современные средства разработки предоставляют готовые реализации этих видов авторизации.

Вот пример digest-авторизации для C#, но, за исключением синтаксических различий, он подойдет и для других языков, использующих .NET:

http://www.stickler.de/en/information/code-snippets/httpwebrequest-digest-authentication.aspx

Передача параметров авторизации в Get-запросе хуже даже чем просто доступ без авторизации, ибо в любом сегменте сети по пути запроса можно подсмотреть данные учетной записи, которые можно потом использовать и для подключения PC-версией.

Возможно, в будущем мы добавим и такой тип авторизации, но рекомендуем всем использовать, по возможности, наиболее защищенные способы доступа к источникам информации, связанной с обеспечением безопасности, коим является сервер видеонаблюдения.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо, Иван!

А вот еще конкретный вопрос. В приведенном примере есть строка

myCredentialCache.Add(myUri, "Digest", myNetworkCredential);

Понятно, зачем она. Непонятно какие myUri писать. Например, что писать, если я хочу запросить список всех камер?Что писать, когда я запрашиваю свойства одной камеры. И самое главное что писать, когда я запрашиваю один jpeg снимок с камеры или mjpeg поток? В форуме есть ссылка на файл спецификаций, но там мутновато написано. Например для запроса снимка написано GET /ethieSho5ching4e?color=0&resolution=640x480 HTTP/. А что такое здесь ethieSho5ching4e?Аналогично для запроса потока что такое /cee9rahtoo4uRooh? Короче нужен конкретный текст (примеры) myUri для этих случаев.В интернете также пишут, что если прошел digest аутентификацию по приведенной Вами схеме для одного закрытого ресурса, то для другого закрытого ресурса это несрабатывает? Что скажите? (ссылка на источник [/color]http://stackoverflow...-httpwebrequest )

 

И наконец, чтобы не лепить свою декодировку потока можно было бы использовать из AForge.NET Framework компонент videoSourcePlayer. Ему надо только указать поток типа MJPEGStream mjpegSource = new MJPEGStream( form.URL ). Но как это все совместить с digest аутентификацией?

Заранее спасибо!

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Иван!

Взял текст предложенного Вами примера, создал Uri Вашего демонстрационного сервера Uri myUri = new Uri("http://demo.devline.ru:1780/"); Попытался аутентифицироваться, получил исключение.

{"Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.

 

В то же время если создать Uri Uri myUri = new Uri("http://demo.devline.ru/"); то все получатся, но конект возникает на порт 1818. Вот содержание ответа сервера

"<html>\r\n<head>\r\n<meta http-equiv=\"refresh\" content=\"3; url=http://46.38.56.85:1818\">\r\n</html>" Почему? Ведь порт 1818 это для мобильных телефонов, а 1870 для обычных компов. Почему коннект отвергается на порт 1870?

 

Попытка законнектиться с Uri myUri = new Uri("http://demo.devline.ru/cameras "); дает исключение "The remote server returned an error: (404) Not Found".

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость 110

Захват кадра идет через порт вебсервера. По умолчанию 9786, но на Демо он 1818. Порт 1870 на демо сервере используется для подключения клиентской части.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

То есть для захвата на ДЕМО надо подключаться к порту 1818?

А как команды писать? Какой текст для перечисления камер, для снимка, для видеопотока?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

То есть для захвата на ДЕМО надо подключаться к порту 1818?

А как команды писать? Какой текст для перечисления камер, для снимка, для видеопотока?

При работе с нашим демо сервером лучше используйте ip 46.38.56.85

port 1818

 

По умолчанию порт вебсервера 9786. Все альтернативные клиенты работают через него.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти

×