stackoverflow。我最近開始了一項新工作,並且首次涉及.NET和所有相關軟件,模式,概念甚至語言。使用Visual Studios 2010的.NET 4.0中的ONVIF身份驗證
我的任務是嘗試建立與建築物中的ONVIF攝像頭的通信,最終升級公司的domotic解決方案以自動識別ONVIF攝像頭並能夠設置並使用他們的服務。
我已經能夠收集到一些基本的信息像它的模型,它的MAC地址和固件版本是這樣的:
EndpointAddress endPointAddress = new EndpointAddress("<mycameraurl:<mycameraport>/onvif/device_service"); CustomBinding bind = new CustomBinding("DeviceBinding"); DeviceClient temp = new DeviceClient(bind, endPointAddress); String[] arrayString = new String[4]; String res = temp.GetDeviceInformation(out arrayString[0], out arrayString[1], out arrayString[2], out arrayString[3]); MessageBox.Show("Model " + arrayString[0] + ", FirmwareVersion " + arrayString[1] + ", SerialNumber " + arrayString[2] + ", HardwareId " + arrayString[3]);
我有我的應用程序的customBinding這個XML規範。配置文件:
<customBinding> <binding name="DeviceBinding"> <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16" messageVersion="Soap12" writeEncoding="utf-8"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> </textMessageEncoding> <httpTransport manualAddressing="false" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous" bypassProxyOnLocal="false" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard" keepAliveEnabled="false" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous" realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false" useDefaultWebProxy="true" /> </binding> </customBinding>
我的問題是,它我不可能深入瞭解我可以問的相機。對於我嘗試的任何事情,我都會得到「400 - 錯誤的請求」錯誤,根據我讀到的內容,因爲我需要處理相機的身份驗證。
問題是,因爲我是初學者,所以我發現的有關WS-Security(似乎被ONVIF使用)的一切都真的很困惑,並且有很多不同的解決方案,爲了我。例如,this post here使它聽起來很簡單,但我試圖創建一個UserNameSecurityToken,並且仍然收到400個錯誤的請求錯誤。因爲我不知道是否因爲我寫了我的令牌系統錯誤,如果是因爲相機不支持我嘗試做的...
我已經嘗試過WSHttpBinding並將其放入用戶名模式,但使用WSHttpBinding打破了我能夠創建的基本信息發現(帶有MustUnderstand錯誤)...
任何指針爲我?簡單的WS-Security/.NET,C#/ ONVIF教程,一切都將被接受。
請原諒我的任何英語錯誤,我不是母語的人。我也知道我的要求非常模糊,所以很抱歉,但我真的很喜歡這個,第一次在互聯網上尋求幫助。
這是一個附註......事實上,你似乎表明你是C#的新手,並且你能夠獲得如此巨大的成績令人印象深刻。 – 2011-04-12 18:34:20
好吧,我已經做了多年的JAVA,最終它比幾年前明顯更容易,現在你通常可以在互聯網上找到一些代碼片段 – user704419 2011-04-13 06:44:41