0

我正在使用管理工具。我在管理工具中有一个以合作伙伴身份登录按钮。当我单击管理工具时,我想直接转到用户配置文件而无需登录。我正在使用一个 html 页面,其中有一个标题,在该标题下我想要该用户配置文件。

所以我正在做的是我正在获取用户个人资料的 url 并重定向到该 url。

我正在获取标题页面,但在它下方正在获取登录页面以转到用户个人资料。当我直接打开网址时,我可以直接进入用户个人资料。

但是当我重定向时,我正在让登录页面转到用户个人资料。我正在使用下面的代码重定向到一个 url。

## Redirecting the partner to abc.com
                my $r = new CGI;
                print STDERR " url is $result\n";
                print $r->redirect( -URL => $result);
                close(STDOUT);
                exit(0);

请帮忙

4

1 回答 1

0

您没有说您是否想像公众一样查看用户的个人资料,作为用户可能(编辑他们自己的个人资料)或作为管理员用户。

如果您需要像以用户身份登录一样查看页面,以下是我解决此类案例的方法:

在我们的会话中,我们有一个“real_user_id”和“effective_use_id”。通常它们是相同的,并且在会话处理的大多数地方,我们检查“effective_user_id”。但是,在管理区域中,有时我们想以另一个用户身份登录,以便我们可以看到他们所做的事情。在这种情况下,我们在 admin 区域中有一个功能,可以将 admin 用户的“有效用户 id”设置为另一个用户。这使我们可以像没有密码一样有效地以用户身份“登录”,但是由于系统仍然可以看到“真实用户 ID”,因此我们还可以构建一个选项以返回到普通管理员用户身份。

您可能会遇到问题,因为当您重定向到正确的页面时,该页面正在重定向回登录屏幕,因为您没有登录该用户。您可以通过手动发出请求来查看命令行上发生的情况,如下所示:

HEAD -sSe 'http://example.com/users-profile-page-to-redirect-to'

('HEAD' 工具来自 LWP::UserAgent perl 模块)。

您可能需要更新“用户个人资料页面”的身份验证,以便普通用户和管理员用户都可以看到它。您如何做到这一点取决于您如何在系统中实施授权。

于 2012-06-20T15:56:02.007 回答