How to get current user of sharepoint 2013
在SharePoint 2013中获取当前用户信息是开发SharePoint解决方案时常见的需求。这主要涉及使用SharePoint客户端对象模型(CSOM)或服务器端对象模型(SSOM)来检索登录用户的数据。下面我们将详细讲解如何实现这一功能。 1. **服务器端对象模型(SSOM)** 在SharePoint 2013的服务器端代码中,可以使用`SPContext.Current.Web.CurrentUser`属性来获取当前登录用户的信息。以下是一个简单的示例: ```csharp using (SPSite site = new SPSite("http://your-sharepoint-site-url")) { using (SPWeb web = site.OpenWeb()) { SPUser currentUser = web.CurrentUser; string userName = currentUser.LoginName; string email = currentUser.Email; // 其他属性访问... } } ``` 这段代码首先创建一个`SPSite`对象,然后打开该站点下的`SPWeb`对象,通过`SPWeb`的`CurrentUser`属性获取到当前用户,并可以访问其LoginName、Email等属性。 2. **客户端对象模型(CSOM)** 如果你需要在客户端(如JavaScript)中获取当前用户信息,可以使用CSOM。确保已引入SharePoint JavaScript库,然后使用`SP.ClientContext.get_current()`方法获取上下文对象,再调用`get_web().get_currentUser()`: ```javascript var context = SP.ClientContext.get_current(); var web = context.get_web(); var currentUser = web.get_currentUser(); context.load(currentUser); context.executeQueryAsync(function() { var userName = currentUser.get_title(); var email = currentUser.get_email(); // 其他属性访问... console.log('用户名:' + userName + ', 邮箱:' + email); }, function(sender, args) { console.log('请求失败:' + args.get_message()); }); ``` 这段代码在异步回调中获取用户信息,`executeQueryAsync`会执行查询并调用成功或失败的回调函数。 3. **SharePoint REST API** 除了使用CSOM,你还可以利用SharePoint REST API来获取当前用户。这适用于需要跨域访问或者在非SharePoint环境中(例如,Angular、React等Web应用)的情况。发送一个GET请求到`/_api/web/currentuser`: ```javascript $.ajax({ url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/currentuser", type: "GET", headers: { "Accept": "application/json;odata=verbose" }, success: function(data) { var userName = data.d.Title; var email = data.d.Email; // 其他属性访问... console.log('用户名:' + userName + ', 邮箱:' + email); }, error: function(error) { console.log('请求失败:' + error.responseText); } }); ``` 4. **使用jQuery SharePoint Methods库(SPServices)** 如果你倾向于使用jQuery,可以借助SPServices库,它简化了与SharePoint Web Services的交互: ```javascript $().SPServices({ operation: "GetCurrentUser", completefunc: function(xData, Status) { if (Status === "success") { var userName = $(xData.responseXML).SPFilterNode("User").attr("Name"); var email = $(xData.responseXML).SPFilterNode("User").attr("Email"); // 其他属性访问... console.log('用户名:' + userName + ', 邮箱:' + email); } } }); ``` 总结来说,获取SharePoint 2013中的当前用户信息可以通过多种方式实现,包括服务器端的SSOM、客户端的CSOM、REST API,以及使用jQuery的SPServices库。选择哪种方法取决于你的具体需求和应用场景。记住,无论哪种方式,都需要确保有足够的权限访问SharePoint资源。
- 1
- 粉丝: 7
- 资源: 27
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于微信小程序的社团活动助手php.zip
- 懂球短视频微信小程序SpringBoot.zip
- java项目,毕业设计-医患档案管理系统
- 船检测8-YOLO(v5至v11)、COCO、Paligemma、TFRecord、VOC数据集合集.rar
- 好用的网络链接监测工具,支持设置各项ping参数(时延,包长等),支持日志记录
- stm32f407进行直流电机pid调速源程序
- java项目,毕业设计-医院固定资产系统
- 经典好用 的网卡管理 工具,支持多IP绑定,静态路由配置,可永久 保存
- C# WPF客户询单管理系统.zip(源码+数据库文件)
- java项目,毕业设计-在线外卖系统
- 机器学习四大名著,入门学习,中间反复研读都适用
- C# 键盘按键禁用拦截.zip
- 剪映【下载这个,直接安装与原来的共存、不显示VIP直接用】.apk
- 简单易用的一个端口转发及代理工具,可实现地址及端口映射
- stm32f103官方DSP库测试程序 可做128点、256点的fft运算,时间很短
- PHP遍历二叉树的实现,深度优先,广度优先,非递归实现