我正在尝试从Sugar CRM动态检索图像以在网站上显示。当我登录时,图像显示正常。当我退出时,我也被拒绝访问图像,因此更广泛的公众将无法看到图像。
如何确保在网页上发送登录标题而不暴露我的用户名和密码?或者我如何在网页上显示图像?
答案 0 :(得分:1)
我必须在今年早些时候做这样的事情。我无法提供所有代码,但我的想法是创建一个不需要授权的单独Entry Point。从那个入口点文件我基本上欺骗了身份验证并调用了正常的download.php入口点。它是这样的(记住这个代码是通过点击index.php?module=MyModule&entryPoint=MyEntryPoint
)
unset($_REQUEST);
$_REQUEST['entryPoint'] = 'download';
$_REQUEST['id'] = $focus->$field;
$_REQUEST['type'] = 'SugarFieldImage';
$_REQUEST['isTempFile'] = '1';
$_SESSION['authenticated_user_id'] = '1';
require_once('download.php');
我发现有一点需要注意,我需要在设置$_SESSION['authenticated_user_id']
之前首先检查现有会话,否则使用该网站的实际Sugar用户将返回Sugar并发现他/她的会话已经过升级到管理员帐户(!)。所以,我在设置之前添加了一个检查,并将代码重新设置回原始值。像这样:
if(!empty($_SESSION['authenticated_user_id'])){
$old_session_id = $_SESSION['authenticated_user_id'];
}
$_SESSION['authenticated_user_id'] = '1';
require_once('download.php');
if(isset($old_session_id)){
$_SESSION['authenticated_user_id'] = $old_session_id;
}