2013-06-24 56 views
0

我嘗試使用基本身份驗證通過使用.NET代碼pentaho認證成功後沒有響應?

我的代碼是使一個登錄和Pentaho:

Dim request = WebRequest.Create("http://x.x.x.x:8080/pentaho/Home") 
Dim authInfo As String = Convert.ToString(userName) & ":" & Convert.ToString(userPassword) 
authInfo = Convert.ToBase64String(Encoding.[Default].GetBytes(authInfo)) 
request.Headers("Authorization") = "Basic " & authInfo 
Dim response As WebResponse = request.GetResponse() 

你可以看到,我通過使用基本的用戶名的授權頭:使用Base64密碼編碼。

對以上代碼的最後一行

Dim response As WebResponse = request.GetResponse() 

你可以看到,我從Pentaho服務器的響應然後將分配給變量響應

在運行時,我發現,Pentaho的可以返回響應並將該值設置爲變量響應。看起來好像認證是通過了並且我成功登錄

但是當我輸入一個鏈接http://x.x.x.x:8080/pentaho/Home登錄頁面仍然提示我需要重新登錄....

你知道我錯過了什麼代碼,這樣,上面的代碼後,在Pentaho無法登陸汽車? 非常感謝你!!!!!

回答

0

您是否嘗試過把它作爲參數的URL,即:

?userid=joe&password=password 

然而,看着它再次看來,如果你成功地得到響應已登錄,那麼下一個請求您還沒有登錄那麼你還沒有保存這兩個請求之間的session/cookie。用httpclient輕鬆完成java,不太確定.net

+0

謝謝你的迴應!是的,我知道我可以在URL中使用參數進行登錄身份驗證,但它不是安全的方法....你有一個Java的示例代碼?我也想有一個參考。再次感謝! –

+0

是的我知道這不安全,但我只是好奇,知道它是否工作?也;還有一件事。當你說成功登錄時,你怎麼知道?你檢查了響應內容嗎?不只是狀態碼?有些情況下BI服務器在頁面文本中返回錯誤,但也是200 OK!我沒有任何httpclient參考代碼,但僅適用於httpclient和cookies /會話等。 – Codek

+0

Thanks Codek!我已經檢查了響應內容,內容是一個完整的html源代碼,返回爲' ... ... ...'狀態碼是200 OK我用'streamreader'和'reader.readtoend()'獲取響應內容。所以我認爲身份驗證已通過,但奇怪的是登錄頁仍然提示... –