无法重定向到perl中的url

时间:2012-06-20 13:46:24

标签: perl

我正在使用Admintool。我在管理工具中有一个Login as Partner按钮。当我点击管理工具时,我想直接转到用户个人资料而无需登录。我正在使用一个html页面,其中有一个标题,在该标题下我想要用户个人资料。

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

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

但是当我重定向时,我正在获取登录页面以转到用户个人资料。我使用下面的代码重定向到网址。

## 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);

请帮忙

1 个答案:

答案 0 :(得分:0)

您没有说明是否要像公众那样查看用户的个人资料,如用户可能(编辑自己的个人资料)或管理员用户。

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

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

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

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

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

您可能需要更新“用户个人资料页”的身份验证,以便允许普通用户和管理员用户查看。如何执行此操作取决于您在系统中实施授权的方式。