这个示例里,我们将演示如何获取用户信息:

1. 打开 Visual Studio 2012.
2. 创建一个新的  SharePoint 2013 app: UserProfileTest.
3. 选择SharePoint-hosted, 点Finish.

4. 打开Default.aspx :
加入knockoutjs和sp.userprofiles.debug.js(包含user profile的信息):

    <script type="text/javascript" src="../Scripts/knockout-3.0.0.js"></script><script type="text/javascript" src="/_layouts/15/sp.runtime.debug.js"></script><script type="text/javascript" src="/_layouts/15/sp.debug.js"></script><script type="text/javascript" src="/_layouts/15/sp.userprofiles.debug.js"></script>

修改title:

<asp:Content ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server">User Information
</asp:Content>

加入用户显示:

<asp:Content ContentPlaceHolderID="PlaceHolderMain" runat="server">
<h2>Current User Properties</h2>
<table data-bind="with: currentUser"><tr><td>title</td><td data-bind="text: get_title()"></td></tr><tr><td>Id</td><td data-bind="text: get_id()"></td></tr><tr><td>loginName</td><td data-bind="text: get_loginName()"></td></tr><tr><td>email</td><td data-bind="text: get_email()"></td></tr><tr><td>isSiteAdmin</td><td data-bind="text: get_isSiteAdmin()"></td></tr></table>
</asp:Content>

5. 打开App.js 修改如下:

前二行引用的js提供了智能感知的功能

/// <reference path="knockout-3.0.0.debug.js" />
/// <reference path="~/_layouts/15/sp.userprofiles.debug.js" />

$(function () {ko.applyBindings(new userProfileProps());
});function userProfileProps() {var self = this;self._currentUser = null;self.currentUser = ko.observable();self.load = function () {var context = SP.ClientContext.get_current();self._currentUser = context.get_web().get_currentUser();context.load(self._currentUser);var pm = new SP.UserProfiles.PeopleManager(context);self._props = pm.getMyProperties();context.load(self._props);context.executeQueryAsync(Function.createDelegate(self, self.onSuccess),Function.createDelegate(self, self.onFail));}self.onSuccess = function () {self.currentUser(self._currentUser);}self.onFail = function (sender, args) {alert("Unable to access user information: " + args.get_message());}self.load();
}

6. 保存并发布.
7. APP页面显示如下:

对于基本的安全检查,这些信息足够了。但为了实现个性化, 我们还要用到 user profile.
8. 停止debug.
9. 打开Default.aspx ,加上 user profile:

<br /><h2>User Profile Properties</h2><table data-bind="with: currentProps"><tr><td>AccountName</td><td data-bind="text: AccountName"></td></tr><tr><td>UserName</td><td data-bind="text: UserName"></td></tr><tr><td>FirstName</td><td data-bind="text: FirstName"></td></tr><tr><td>LastName</td><td data-bind="text: LastName"></td></tr><tr><td>PreferredName</td><td data-bind="text: PreferredName"></td></tr><tr><td>WorkEmail</td><td data-bind="text: WorkEmail"></td></tr><tr><td>WorkPhone</td><td data-bind="text: WorkPhone"></td></tr><tr><td>PictureURL</td><td><img src="#" data-bind="attr: { src: PictureURL }" /></td></tr></table>

10. 打开  App.js ,在这行 var self=this; declaration:后面加上:

self._props = null;
self.userProps = ko.observable();

11. 在这行executeQueryAsync(): 前加上:

var pm = new SP.UserProfiles.PeopleManager(context);
self._props = pm.getMyProperties();
context.load(self._props);

12. 加上这行到 self.onSuccess() function:

self.userProps(self._props.get_userProfileProperties());

13. 打开AppManifest.xml file.
14. 选择Permissions tab.
15. scope 选择 User Profiles , permission 选择 Read.

16. 发布.
17. 你将看到一个要你授权的页面,点 Trust It. 这个页面应该显示如下:

在user profile service有很多属性.你还可以创建自定义的属性, self._props.get_userProfileProperties() 创建了一个对象,包含了所有赋予它的 profile 属性
, 很容易在debug时查看或者bind它的值到html 上。

SharePoint 2013 APP 开发示例 系列

SharePoint 2013 APP 开发示例 (二)获取用户信息相关推荐

  1. SharePoint 2013 APP 开发示例 系列

    SharePoint 2013 APP 安全: SharePoint 2013 APP 开发示例 (一)List 读写 SharePoint 2013 APP 开发示例 (二)获取用户信息 Share ...

  2. SharePoint 2013 APP 开发示例 (三)使用远程的web资源

    在这个示例里我们将详细介绍 TokenHelper 类, 我们将看到它是怎么简单地从远程web站点访问SharePoint的.我们还将取到它的一些值.这将帮助我们理解连接是怎么被构造的,同时也方便我们 ...

  3. SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)

    上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...

  4. 微信企业号开发[二]——获取用户信息

    注:文中绿色部分为摘自微信官方文档 在<微信企业号开发[一]--创建应用>介绍了如何创建应用,但是当用户点击应用跳转到我们设定的URL时,其实并没有带上用户的任何信息,为了获取用户信息,我 ...

  5. 获取微信用户信息java开发_Java微信公众平台开发(十二)--微信用户信息的获取

    前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关 ...

  6. 微信公众号开发之授权获取用户信息

    微信开发交流群:148540125 系列文章参考地址 极速开发微信公众号 欢迎留言.转发.打赏 项目源码参考地址 点我点我--欢迎Start 前几篇文章已讲完如何导入项目,如何启动配置项目,如何成为开 ...

  7. 钉钉二次开发-组织机构同步 获取用户信息 单点登录接口

    建用户 调试工具:在线调试 请求方式:POST(HTTPS) 请求地址:https://oapi.dingtalk.com/user/create?access_token=ACCESS_TOKEN ...

  8. 微信开发网页授权获取用户信息

    如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 1. 关于OAuth2.0的说明 官方网站:http://oauth.net/   htt ...

  9. 微信公众号的二次开发(三、接收事件推送获取用户信息)

    在上篇<微信公众号的二次开发(二 自定义菜单的创建)>中我们介绍了自定义菜单的创建.本篇文章将介绍如何通过接收事件推送来获取用户信息.首先我们阅读官方文档: 根据官方文档的介绍 微信公众号 ...

最新文章

  1. 刚出炉!程序员人才补贴:单项目最高补贴1000万元
  2. 【云炬大学生创业基础笔记】第1章第1节 创新和创业有什么样的关系?
  3. div没有设置高度,背景颜色却无法显示
  4. 欢乐纪中A组赛【2019.8.20】
  5. 面试题 10.01. 合并排序的数组
  6. Java 笔试题---Java与编程模式--7月6日
  7. 《编码规范和测试方法——C/C++版》作业 ·003——宏定义作用整理、设计删除数组元素的函数
  8. 基于PSR-0编码规范开发一套PHP-MVC框架(二)
  9. mysql中url的格式_MySQL JDBC URL中的格式以及参数介绍
  10. java图书管理系统代码_java图书管理系统(源码+jar包+数据库)
  11. uni-app url 传参有长度限制么?
  12. TOMCAT启动提示NB: JAVA_HOME should point to a JDK not a JRE解决
  13. F5 BIG-IP 17.0.0
  14. 【谷粒商城】阿里云oss文件上传(P61)
  15. 拷机测试需要多久_网站建设要多久?
  16. 解密红杉资本加密局,一个女人选择 ALL IN
  17. Legacy与UEFI
  18. 【ESP32_8266_WiFi (十一)】通过JSON实现物联网数据通讯
  19. IPC的键值和标识符
  20. POJ 4110:圣诞老人的礼物-Santa Clau’s Gifts

热门文章

  1. java中PriorityQueue优先级队列使用方法
  2. OpenCart 2.x 系统商品数量库存减少逻辑
  3. 用div代替textarea,实现在文本框中使用回车br和设置字体功能
  4. Windows下架设SVN服务
  5. .net伪静态传多个参数
  6. C#常见算法题目(面试准备)
  7. Q107:Mac系统下GDB对PBRT-V3进行debug
  8. Python语法报错相关语句
  9. 大数据如何应用在企业人力资源管理
  10. Appium 屏幕页面滑动(swipe函数实现)