CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > Web服务子站 > 技巧

使用 PHP 进行身份管理

作者: ,  出处:甲骨文OTN, 责任编辑: 叶江, 
2007-05-24 10:50
  了解如何在基于 PHP 的 Web 应用程序中实现身份管理……

  确定已设置 $newuserid 和 $newpasswd 变量之后,嵌套的 if 语句过滤器将调用 create_new_db_user() 函数。这两个变量只能在 AddDbUser.php Web 页面中设置,这意味着,只有在用户经过身份验证之后,才能调用这两个变量。这也适用于对 AddDbUser.php Web 页的后续调用,因为单击 Add User 按钮会递归地调用同一个 Web 页面。

  // Add a new user to the authorized control list.
  function create_new_db_user($userid,$newuserid,$newpasswd)
  {
  // Attempt connection and evaluate password.
  if ($c = @oci_connect(SCHEMA,PASSWD,TNS_ID))
  {
  // Check for prior insert, possible on Web page refresh.
  if (!is_inserted($c,$newuserid))
  {
  // Encrypt password.
  $newpassword = sha1($passwd);
  // Return database UID.
  $s = oci_parse($c,"INSERT INTO system_user
  ( system_user_id
  , system_user_name
  , system_user_password
  , system_user_group_id
  , system_user_type
  , created_by
  , creation_date
  , last_updated_by
  , last_update_date )
  VALUES
  ( system_user_s1.nextval
  , :newuserid
  , :newpasswd
  , 1
  , 1
  , :userid1
  , SYSDATE
  , :userid2
  , SYSDATE)");
  // Bind the variables as strings.
  oci_bind_by_name($s,":newuserid",$newuserid);
  oci_bind_by_name($s,":newpasswd", $newpassword);
  oci_bind_by_name($s,":userid1",$userid);
  oci_bind_by_name($s,":userid2",$userid);
  // Execute the query, error handling should be added.
  if (!@oci_execute($s,OCI_COMMIT_ON_SUCCESS))
  {
  // Print error when oci_execute() fails.
  $errorMessage = "Check for a missing SYSTEM_USER table.
";
  print $errorMessage;
  }
  }
  // Close the connection.
  oci_close($c);
  }
  else
  {
  $errorMessage = oci_error();
  print htmlentities($errorMessage['message'])."
";
  }
  }

  在 create_new_db_user() 函数中,将调用 is_inserted() 函数。这将进行检查,以确保在尝试将用户插入 SYSTEM_USER 表之前该用户不存在。与先前的嵌套函数示例一样,is_inserted() 函数将共享本地连接以便控制事务。此外,在将用户口令绑定到数据操作变量之前,sha1() 函数会将明文口令转换为加密字符串。

  成功插入新用户之后,New User 表单会再次呈现,等待您插入其他用户或者单击 Log Out 按钮。Log Out 按钮会将您返回到登录屏幕,在该屏幕中,您可以重置会话标识符。

  结论

  现在,您已经了解了身份管理的工作方式,以及如何实现基本身份管理解决方案,您应该已经熟悉术语、体系结构以及验证用户身份的方法。

  您现在可以平等地管理用户验证和访问,但用户不是平等的。某些用户可能拥有不受限制的访问权,但大部分用户都拥有受限制的访问权。

  尽管 VPD 功能是“高级功能”,但早期技术 DBMS_APPLICATION_INFO 也可用于 Oracle8i、Oracle9i 和 Oracle 数据库 10g 第 1 版。它还是支持 Oracle 电子商务 11i 套件身份验证的核心实用程序。这两项技术都可让您实现细粒度的访问权限和角色。

共10页。 9 5 6 7 8 9 10

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i