如何在.NET 中进行基本身份验证后重定向到 Pentaho 的主页?

Posted

技术标签:

【中文标题】如何在.NET 中进行基本身份验证后重定向到 Pentaho 的主页?【英文标题】:How to redirect to home page of Pentaho after basic authentication in .NET? 【发布时间】:2013-06-21 02:16:34 【问题描述】:

我尝试在 VB.NET 端使用基本身份验证来登录 Pentaho

我使用 Pentaho 的默认账号进行测试

用户名:joe

密码:密码

我在 VB.NET 中有以下代码用于 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()

运行后request.GetResponse()可以得到成功的结果。所以我认为 Pentaho 登录和身份验证成功

但是当我转到http://x.x.x.x:8080/pentaho/HomePentaho 时仍然提示登录页面...

你知道我的代码有什么问题吗?

提前致谢!!

【问题讨论】:

【参考方案1】:

不确定您要在这里做什么。你要去哪里 pentaho/Home。在你的代码中?

如果您想在 Pentaho 中以编程方式调用某个 URL,将凭据附加到查询字符串可能更容易。

【讨论】:

感谢您的回复。可以看到代码Dim response As WebResponse = request.GetResponse()变量response可以成功得到pentaho的响应结果。所以我假设该代码通过了身份验证。但是当我进入pentaho的主页时,pentaho仍然提示登录页面... 所以我想问一下如何在认证完成并成功后重定向到pentaho的主页?非常感谢!!!!!!【参考方案2】:

您可以使用基本身份验证方法,我已经在下面的帖子中回答了这个问题。 enter link description here

例如-

WebClient webClient = new System.Net.WebClient();
Uri uri = new Uri("http://serverDomain:8080/pentaho/Home");
//Give user name and password here
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes("username:password");
var encodedString = System.Convert.ToBase64String(plainTextBytes);
webClient.Headers["Authorization"] = "Basic " + encodedString;
webClient.Encoding = Encoding.UTF8;
App.WindowManager.ConsoleWrite(uri.ToString());
webClient.UploadStringAsync(uri, "POST", "");

【讨论】:

以上是关于如何在.NET 中进行基本身份验证后重定向到 Pentaho 的主页?的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5 中进行身份验证后重定向

如何在使用 Passport 进行社交身份验证后重定向到正确的客户端路由(react、react-router、express、passport)

React Router - 身份验证后重定向延迟

强制 Shibboleth 在身份验证后重定向到特定 URL

在 Glassfish 上进行领域身份验证后重定向

从令牌服务器(身份服务器 4)进行身份验证后重定向到客户端的相同 URL