2014-12-05 91 views
1

我們正在爲客戶創建一個Ellie Mae的Encompass系統插件。如何使用授權標題在.NET中啓動URL?

這個特定的插件只有一個按鈕,點擊後會啓動一個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,而是希望我們通過一個Authorization HTTP頭將身份驗證傳遞給URL。

這將是很容易的,如果我們做的代碼我們自己的網絡請求,類似如下:

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" 

但是,我們不是做一個代碼Web請求,而是簡單的啓動網址通過Process.Start。有沒有辦法通過Authorization頭?

+1

這樣看來,有章一個類似的問題給你:[鏈接](http://stackoverflow.com/questions/1705201/how-to-open-ie-with-post-info-in-c) – Mathemats 2014-12-05 03:35:49

回答

2

this question的幫助下,我放棄了一個隱藏的WebBrowser控件的窗體上,然後推出了網址在外部瀏覽器,與Authorization頭,如下...

' wb is the WebBrowser 
Dim hdr = "Authorization: Basic " & Convert.ToBase64String(Encoding.UTF8.GetBytes("EncodedInfoHere".ToCharArray())) 
wb.Navigate(url & unm, "_blank", {}, hdr)