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币余额
- 我的收藏
- 我的下载
- 下载帮助