AutoGRAPH.NET Service Auth — различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
Примеры кода, для реализации работы с аутентификацией: |
Примеры кода, для реализации работы с аутентификацией: |
||
− | |||
− | == WCF (Windows Communication Foundation) == |
||
− | |||
− | В этом режиме используется особенность библиотеки WCF с помощью behaviours extensions и message inspector's. Пример: |
||
− | <pre>var svc = new AutoGRAPHSvcClient(); |
||
− | var bh = new AuthenticateEndpointBehavior(); |
||
− | svc.Endpoint.Behaviors.Add(bh); |
||
− | bh.Token = svc.Login("demo", "demo"); |
||
− | var devices = svc.EnumDevices("DemoSchema"); |
||
− | var geofences = svc.EnumGeofences("DemoSchema");</pre> |
||
− | |||
− | и далее все остальные методы не требуют дополнительных изменений для работы. Дополнительный файл с классами Helpers.cs прилагается в архиве. |
||
== JSON == |
== JSON == |
||
Строка 41: | Строка 29: | ||
и далее все остальные методы не требуют дополнительных изменений для работы. |
и далее все остальные методы не требуют дополнительных изменений для работы. |
||
+ | |||
+ | |||
+ | |||
+ | == WCF ''<small><span style="background-color:#FFFF00;">протокол устарел и не рекомендуется к использованию. Будет удалён с 01.06.2020</span></small>'' == |
||
+ | |||
+ | В этом режиме используется особенность библиотеки WCF с помощью behaviours extensions и message inspector's. Пример: |
||
+ | <pre>var svc = new AutoGRAPHSvcClient(); |
||
+ | var bh = new AuthenticateEndpointBehavior(); |
||
+ | svc.Endpoint.Behaviors.Add(bh); |
||
+ | bh.Token = svc.Login("demo", "demo"); |
||
+ | var devices = svc.EnumDevices("DemoSchema"); |
||
+ | var geofences = svc.EnumGeofences("DemoSchema");</pre> |
||
+ | |||
+ | и далее все остальные методы не требуют дополнительных изменений для работы. Дополнительный файл с классами Helpers.cs прилагается в архиве. |
||
Версия на VBA (Microsoft Excel): |
Версия на VBA (Microsoft Excel): |
Текущая версия на 16:22, 21 января 2020
Аутентификация
Аутентификация выполняется вызовом метода Login, который возвращает токен. Данный токен должен передаваться в HTTP header всех остальных запросов или в URL как параметр с названием session.
Примеры кода, для реализации работы с аутентификацией:
JSON
В этом режиме делается запрос к методу Login для получения токена и устанавливается заголовок AG-TOKEN или добавляется параметр session.
WebClient client = new WebClient(); client.Headers["Content-Type"] = "application/json"; client.Headers["AG-TOKEN"] = client.UploadString( // метод POST "http://localhost:8300/Login", "{\"UserName\":\"demo\",\"Password\":\"demo\"}").Trim('\"', '\"'); // далее обычная работа с JSON client.DownloadString("http://localhost:8300/EnumSchemas");
или
WebClient client = new WebClient(); client.Headers["Content-Type"] = "application/json"; var session = client.DownloadString("http://localhost:8300/Login?UserName=demo&Password=demo").Trim('\"', '\"'); // метод GET // далее обычная работа с JSON client.DownloadString("http://localhost:8300/EnumSchemas?session="+session);
и далее все остальные методы не требуют дополнительных изменений для работы.
WCF протокол устарел и не рекомендуется к использованию. Будет удалён с 01.06.2020
В этом режиме используется особенность библиотеки WCF с помощью behaviours extensions и message inspector's. Пример:
var svc = new AutoGRAPHSvcClient(); var bh = new AuthenticateEndpointBehavior(); svc.Endpoint.Behaviors.Add(bh); bh.Token = svc.Login("demo", "demo"); var devices = svc.EnumDevices("DemoSchema"); var geofences = svc.EnumGeofences("DemoSchema");
и далее все остальные методы не требуют дополнительных изменений для работы. Дополнительный файл с классами Helpers.cs прилагается в архиве.
Версия на VBA (Microsoft Excel):
Sub WebClient() Dim iToken As String Dim URL As String LoginURL = "http://95.213.159.8:8300/Login" URL = "http://95.213.159.8:8300/" iToken = GetHTTPResponseToken(LoginURL) UserForm1.Label1.Caption = GetHTTPResponse(URL, iToken, "EnumDevices/Demo") UserForm1.Show End Sub Function GetHTTPResponseToken(ByVal sURL As String) As String Dim logpass As String logpass = "{""UserName"":""Demo"",""Password"":""Demo""}" On Error Resume Next Set client = CreateObject("MSXML2.XMLHTTP") With client .Open "POST", sURL, False .SetRequestHeader "Content-Type", "application/json" .send [logpass] GetHTTPResponseToken = .ResponseText GetHTTPResponseToken = Mid(GetHTTPResponseToken, 2, Len(GetHTTPResponseToken) - 2) End With Set client = Nothing End Function Function GetHTTPResponse(ByVal sURL As String, Token As String, Metod As String) Dim logpass As String On Error Resume Next Set client = CreateObject("MSXML2.XMLHTTP") With client .Open "GET", sURL & Metod, False .SetRequestHeader "Content-Type", "application/json" .SetRequestHeader "AG-TOKEN", Token .send GetHTTPResponse = .ResponseText End With Set client = Nothing End Function