新客网
首页 | 新闻 | 系统·网络·服务器·安全 | 工具·办公 | 编程·数据库 | 图象·网页·运营 | 硬件·存储 | 专题教程 | 论坛·old
 → 当前位置:首页 > 教程 > 数据库 > Oracle > 正文

用 Oracle AS 10g 为PHP提供的一次性登录

XKER.COM   2006-10-28 8:40:01  来源:互联网  点击:

PHP 和 Oracle Application Server
  
  PHP 是一种强大、灵活的开放源代码脚本语言,它一般用于在 web 页面中生成动态内容。(PHP 类似于 Perl,但远没有那么复杂。关于更多的背景知识,请访问 OTN 的开放源代码开发人员中心。}PHP 为大多数数据库产品(包括 Oracle)提供了一系列随取随用的丰富特性和服务(包括 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、XML、XSL)以及数据库访问模块。PHP 可以作为 CGI 在 Apache 下运行,或者可以配置为 Apache Web Server 模块。
  
  将 PHP 与 Oracle Application Server 集成非常容易,因为 Oracle HTTP Server 是一个 Apache Web Server。Mod_osso 作为 Apache 模块与 Oracle Application Server 集成在一起,因此利用该应用服务器的特性来保护 PHP 页面是一件很简单的事情。
  
  方法 1:PHP 代理页面方法
  Mod_osso 通过已注册的 URL 模式来保护 web 页面。它检查通过 Oracle HTTP Server 的所有请求;如果请求或 URL 包含了一个被保护的模式,而请求者还没有在 SSO 服务器上得到验证,那么该请求者将被重定向到 SSO 登录屏幕。SSO 启用 PHP 页面的代理页面方法利用了一个已注册的 URL 模式,该模式被映射到一个特定的 PHP 页面上。通过在 mod_osso.conf 文件中按下面的说明记录该模式,可以向 mod_osso 注册 URL:
  
  
  <Location /php_apps/ssoreroute.php>
  require valid-user
  authType Basic
  </Location>
  
  受保护的 PHP 页面充当您想要保护的其它所有 PHP 页面的代理。
  
 

  在图 1中,PHP 文件(SSOUtils.php;参见列表 1)充当库,它包含了一个名为 checkAuthenticated() 的用户自定义函数,并被包含在我们试图实现 SSO 的 PHP 页面(MyPage.php;参见列表 2)中。该函数在我们要实现 SSO 的页面上运行,并检查请求者是否已在 SSO 服务器上得到了验证。如果请求者还没有得到验证,那么请求者将被自动重定向到 php 代理页面,该页面的 URL 模式在 mod_osso 进行了注册。该 php 代理页面 (ssoreroute.php) 将调用页面的 URL 作为一个参数提取出来。请求者被 mod_osso 重定向到登录屏幕。在成功验证之后,请求者被重定向回 PHP 代理页面,该页面按顺序将请求者重定向回调用页面。
  
  函数 checkAuthenticated() 的 PHP 脚本非常简单:
  
  function checkAuthenticated(){
  
  $SSO_REROUTE = "/php_apps/ssoreroute.php?p_redirect_url=";
  $SSO_USER  = getenv("REMOTE_USER");
  
  if (empty($SSO_USER)){
  
  header("Location:".$SSO_REROUTE.$_SERVER['PHP_SELF']);
  
   }
  
  }
  
  PHP 代理页面的脚本同样很简单:
  
  <?php
  
  //重定向回被请求的页面。
  header("Location:".$_REQUEST['p_redirect_url']);
  
  ?>
  
  但登录只是 SSO 服务器完整功能的一部分。我们还能够注销,这通常称为一次性注销。注销基于 SSO 的页面是一个简单的重定向到 URL /osso_logout?p_done_url=<return url> 的操作。注销 URL 是 SSO 服务器的一个特性。
  
  下面的函数 ssoLogoutLink(<return url>) 创建了一条自定义的注销链接:
  
  
  function ssoLogoutLink($RETURN_URL=""){
  
  $DONE_URL = "";
  
  if (empty($RETURN_URL)){
  $DONE_URL=$_SERVER['PHP_SELF'];
  } else {
  $DONE_URL=$RETURN_URL;
   }
  
  $SSO_LOGOUT_URL = "/osso_logout?p_done_url=".$DONE_URL;
   
  $LOGOUT_LINK  = "<a href=\"".$SSO_LOGOUT_URL."\">Click here to Logout</a>";
  
  return $LOGOUT_LINK;
  
  }
  
  代理页面方法是一种非常简单的利用基本 mod_osso 功能来保护 PHP 页面的方法。不过它将请求者限制在了与 mod_osso 相关的默认注销和返回 URL 上。因而,这种方法没有提供非常细粒化的控制。相比而言,在接下来的内容中要讨论的方法通过使用 servlet 和动态指令提供了更细粒化的控制。

本新闻共3页,当前在第1页  1  2  3  

上一篇教程:你的INTERNAL帐号密码忘记了怎么办
下一篇教程:没有了
收藏本文】 【我要投稿】 【打印本文】 【论坛讨论】 【关闭窗口

相关文章
·PHP中英文混合排版中处理字符串常用的函数·多个字段,大量记录的插入操作技巧(PHP)
·你的INTERNAL帐号密码忘记了怎么办·用PHP构建一个简易监视引擎
·php高手进阶:写一个用户在线显示的程序·在PHP开发过程中实现验证码一法
·在PHP中实现文件的上传功能·Linux下用PHP4连接ORACLE8I的方法
·Linux 下PHP连接MS SQLServer 的办法·深入探讨PHP中的内存管理问题
·用PHP连mysql和oracle数据库性能比较·MVC经典模式的PHP实现方法初探
·JSP、PHP与JAVA融合的开发环境(一)·JSP、PHP与JAVA融合的开发环境(二)
·PHP如何调用JAVA 类库·在PHP中通过ADO调用Asscess数据库和COM程序

学院文章搜索
  
推荐文章
·嵌入式Linux操作系统启动信
·网页设计配色应用实例剖析
·如何安全安装Vista系统
·Photoshop巧绘制非洲菊
·简简单单用软件给MP3掐头去
·ASP初学者常用源代码总结篇
·利用异常表处理Linux内核态
·Linux命令行下如何配置nVI
·如何实现Linux与windows的
·秘籍:右键菜单终极锤炼术
阅读排行
·免费代理IP(每日更新)
·流氓网站招招看 详细剖析恶
·轻松恢复硬盘数据 EasyRec
·DOS下对系统重新进行分区
·清除猖狂的Sxs.exe病毒
·DOS常用命令
·编程过把瘾:自己动手写操
·windows下如何修改右键菜单
·DOS下常用的相关网络命令
·SQL Server安装文件挂起错
专题教程
·MySQL 专题
·数据恢复指南 专题
·Web服务器专题
·DB2 9数据库专题
·ghost教程 专题
·局域网技术专题
·虚拟机专题
·CDN加速技术专题
·注册表教程专题
·电脑技巧 专题
最新文章
·用 Oracle AS 10g 为PHP提
·PHP中英文混合排版中处理字
·多个字段,大量记录的插入操
·嵌入式Linux操作系统启动信
·微软证实IE7存在地址栏漏洞
·造就互联网之痛:Google?
·解析MPLS:融合路由器和AT
·SQL Server数据库崩溃后的
·你的INTERNAL帐号密码忘记
·从注入点得知是否有硬盘访
设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003 - 2006 XKER Inc. All Rights Reserved
新客网 版权所有