/// <summary> /// Connects to a camera. /// </summary> /// <param name="deviceServiceURL">The device service URL.</param> /// <param name="username">The username.</param> /// <param name="password">The password.</param> /// <returns></returns> public static Camera ConnectToCamera(string deviceServiceURL, string username, string password) { PasswordDigestBehavior passwordDigestBehavior = null; if (!String.IsNullOrWhiteSpace(username) && !String.IsNullOrWhiteSpace(password)) { passwordDigestBehavior = new PasswordDigestBehavior(username, password); } Camera camera = new Camera(passwordDigestBehavior); IDeviceService deviceService = null; try { deviceService = new Services.Device.Ver10.DeviceService(camera, deviceServiceURL); } catch (System.Exception ex) { // TODO: log and create a reason why it was unable to connect } if (deviceService == null) { throw new UnableToConnectException(deviceServiceURL, username); } camera.AvailableServices = deviceService.GetServices(); return(camera); }
/// <summary> /// The send hello method. /// </summary> /// <param name="firstName"> /// The first name. /// </param> /// <returns> /// The <see cref="string"/>. /// </returns> public string SendHello(string firstName) { // Client Proxy var client = new Hello_PortTypeClient("Hello_Binding"); // Add custom behavior var behavior = new PasswordDigestBehavior("Username", "Password"); client.Endpoint.Behaviors.Add(behavior); // Say hello return(client.sayHello(null, firstName)); }
public static ServiceReference1.MediaClient GetMedia1Client(string uri, double devideviceTimeOffset, string username = "", string password = "") { EndpointAddress endpointAddress = new EndpointAddress(uri); HttpTransportBindingElement httpTransportBindingElement = new HttpTransportBindingElement(); httpTransportBindingElement.AuthenticationScheme = AuthenticationSchemes.Digest; var MessageEl = new TextMessageEncodingBindingElement(); MessageEl.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None); System.ServiceModel.Channels.CustomBinding customBinding = new System.ServiceModel.Channels.CustomBinding(MessageEl, httpTransportBindingElement); ServiceReference1.MediaClient media1Client = new ServiceReference1.MediaClient(customBinding, endpointAddress); if (username != string.Empty) { PasswordDigestBehavior behavior = new PasswordDigestBehavior(username, password, devideviceTimeOffset); media1Client.Endpoint.EndpointBehaviors.Add(behavior); } return(media1Client); }
public static DeviceClient GetClient(string ip, int port, string username = "", string password = "") { EndpointAddress serviceAddress = new EndpointAddress(string.Format("", ip, port)); HttpTransportBindingElement httpBindingElement = new HttpTransportBindingElement(); httpBindingElement.AuthenticationScheme = AuthenticationSchemes.Digest; var messageElement = new TextMessageEncodingBindingElement(); messageElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None); System.ServiceModel.Channels.CustomBinding customBinding = new System.ServiceModel.Channels.CustomBinding(messageElement, httpBindingElement); DeviceClient deviceClient = new DeviceClient(customBinding, serviceAddress); if (username != string.Empty) { // Handles adding of SOAP Security header containing User Token (user, nonce, pwd digest) PasswordDigestBehavior behavior = new PasswordDigestBehavior(username, password); deviceClient.Endpoint.Behaviors.Add(behavior); } return(deviceClient); }
public static PTZClient GetOnvifPTZClient(string Uri, double deviceTimeOffset, string username = "", string password = "") { EndpointAddress serviceAddress = new EndpointAddress(Uri); HttpTransportBindingElement httpBinding = new HttpTransportBindingElement(); httpBinding.AuthenticationScheme = AuthenticationSchemes.Digest; var messageElement = new TextMessageEncodingBindingElement(); messageElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None); CustomBinding bind = new CustomBinding(messageElement, httpBinding); PTZClient ptzClient = new PTZClient(bind, serviceAddress); if (username != string.Empty) { // Handles adding of SOAP Security header containing User Token (user, nonce, pwd digest) PasswordDigestBehavior behavior = new PasswordDigestBehavior(username, password); ptzClient.Endpoint.Behaviors.Add(behavior); } return(ptzClient); }
public static SubscriptionManagerClient GetSubscriptionManagerClient(string uri, double deviceTimeOffset, string username = "", string password = "") // string ip, int port, List<MessageHeader> headers) { EndpointAddress serviceAddress = new EndpointAddress(uri); // string.Format("http://{0}:{1}/onvif/event_service", ip, port)); HttpTransportBindingElement httpBinding = new HttpTransportBindingElement(); httpBinding.AuthenticationScheme = AuthenticationSchemes.Digest; var messageElement = new TextMessageEncodingBindingElement(); messageElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.WSAddressing10); CustomBinding bind = new CustomBinding(messageElement, httpBinding); SubscriptionManagerClient client = new SubscriptionManagerClient(bind, serviceAddress); if (username != string.Empty) { // Handles adding of SOAP Security header containing User Token (user, nonce, pwd digest) PasswordDigestBehavior behavior = new PasswordDigestBehavior(username, password, deviceTimeOffset); client.Endpoint.Behaviors.Add(behavior); } return(client); }
internal Camera(PasswordDigestBehavior passwordDigestBehavior) { this.PasswordDigestBehavior = passwordDigestBehavior; this.AvailableServices = new List <IService>(); }