zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    基本概念和术语
    Html中的<label>标签
    shell17echo打印带颜色的文字
    shell-15 &的三种不同
    shell-14 多个命令以分号隔开
    shell-13 tee管道可以重定向但是不截流
    shell-12实用cat完成文件复制
    shell-11输入内容到文件
    shell-10kill杀死作业号和进程号
    shell-9前后台切换
  • 原文地址:https://www.cnblogs.com/zygoses2gether/p/UserInfo.html
Copyright © 2011-2022 走看看