Мы создаем плагин для системы Encompass Элли Мэй для клиента.
Этот конкретный плагин имеет только одну кнопку, которая при нажатии запускает URL-адрес и передает идентификатор пользователя, вошедшего в систему Encompass в данный момент. Это все очень просто, используя следующий код...
Private Sub btnProductSearch_Click(sender As Object, e As EventArgs)
Handles btnProductSearch.Click
Try
Dim cliid = EncompassApplication.Session.ClientID,
unm As String = EncompassApplication.CurrentUser().ID,
url As String = GetServiceUrl(cliid)
If String.IsNullOrEmpty(url) Then
MsgBox("No matching URL found for current Encompass Client ID.")
Else
Process.Start(url & unm)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Теперь самое интересное... они не хотят, чтобы пользователь входил в систему по запускаемому URL-адресу, но хотят, чтобы мы передавали аутентификацию по URL-адресу через HTTP-заголовок Authorization
.
Это было бы достаточно просто, если бы мы делали наш собственный веб-запрос в коде, например:
Dim wreq = HttpWebRequest.CreateHttp(url)
wreq.Method = "POST"
Dim authBytes As Byte() = Encoding.UTF8.GetBytes("EncodedInfoHere".ToCharArray())
wreq.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(authBytes))
wreq.ContentType = "application/json"
Однако мы не делаем веб-запрос кода, а просто запускаем URL-адрес через Process.Start
. Есть ли способ при этом передать заголовок Authorization
?