SharePoint中利用客户端脚本获得当前登录用户信息

需求概述
在服务器端可以很方便的获得当前页面登录的用户信息,但是有的时候需要在客户端利用脚本获得当前登录的用户信息。

效果图
用户YoungSem登录


显示的菜单


用户Jacqueline登录



显示的菜单


实现原理
利用服务器端获得用户信息
利用WebPart将用户信息发送到客户端
在客户端利用脚本获得用户信息

实现细节
生成一个可以获得页面登录信息的用户控件;
利用KaneBoy的用户控件包装器将生成的用户控件包装成WebPart;
发布WebPart到相应的页面;
将“内容编辑Web部件”拖动到页面中,写入相应的脚本。具体可以参见“更改SharePoint文档库中上下文菜单的菜单项”。

(1)可以获得页面登录信息的用户控件
在用户控件中添加一个Html的编辑框控件,将其改为在服务器端运行
在Page_Load事件中添加如下代码
   SPWeb mySite = SPControl.GetContextWeb(Context);
   SPUser curUser = mySite.CurrentUser;
   tb_curUserInfo.Value = curUser.LoginName;

(2)写入相应的脚本
<script language="javascript">

function Custom_AddDocLibMenuItems(m, ctx)

{

  var strDisplayText = "晚上一起看电影,好不好?"; // 菜单项的显示文字

  var strAction = "alert('不去,怕欠你人情!')";        // 菜单项的实际功能

  var strImagePath = "";                                 // 菜单项的显示图片
 
  //取得页面获得的用户信息
  var curUser = document.all("Right:g_dbe99713_ca21_4f1e_b544_30648e30c7d5:_ctl0:tb_curUserInfo").value;
 
  //做一个简单的判定
  if ( "PORT\\YoungSem" == curUser )
  {
  // 将菜单项添加到上下文菜单中

  CAMOpt(m, strDisplayText, strAction, strImagePath);


  // 添加一个分隔栏

  CAMSep(m);

  }

  // 如果为true,不显示系统默认的菜单项
  // 如果为fasle,显示系统默认的菜单项

  return true;

}

</script>

 

posted @ 2006-04-12 09:44  Andy Yang  阅读(1892)  评论(0编辑  收藏  举报