在SharePoint2010中,我们可以选择几种不同的方式来访问域用户的profile,下面简单介绍3种方法:
1.通过客户端直接调用user profile service来访问
例如项目中有silverlight模块想显示当前用户的profile信息,可以这么作:
首先添加Service Reference,输入service url http://rootsite/sites/subsite/_vti_bin/UserProfileService.asmx?WSDL
rootsite & subsite请根据实际情况替换。然后我们为我们的Service reference取名为UserProfileServiceProxy。
其次在maipage方法中加入调用service 代码以及回调方法代码:
以下是代码片段: public MainPage() { InitializeComponent(); client = new UserProfileServiceProxy.UserProfileServiceSoapClient(); client.Endpoint.Behaviors.Add(new AsmxBehavior()); client.GetUserProfileByNameCompleted +=new EventHandler(client_GetUserProfileByNameCompleted); client.GetUserProfileByNameAsync(null); } private void client_GetUserProfileByNameCompleted(object sender, UserProfileServiceProxy.GetUserProfileByNameCompletedEventArgs e) { if (e.Error == null) { string s = ""; for (int i = 0; i < e.Result.Count; i++) { if (e.Result[i].Values.Count > 0) { s +="{" + i.ToString() + "}" +"-->" + e.Result[i].Values[0].Value.ToString() + "\n"; } } MessageBox.Show(s); } } |
其中加入AsmxBehavior类的原因是silverlight对guid的deseriable无法识别,网上找了个别人写的类,不添加这个bahavior,service调用会报异常,AsmxBehavior类和AsmxMessageInspector类就解决了这个问题,用的时候,把这两个类加进你的项目中就可以了。AsmxBehavior类和AsmxMessageInspector类的详细代码会在附件中加上。
这样就可以得到一个当前user的profile信息了,可以看见我们主要是调用了GetUserProfileByNameAsync(null)这个方法,传入null参数返回当前用户profile,当然你可以给别的name来得到相应的profile。
2. 在server直接通过SharePoint 的 Object Model取得service,方法如下:
以下是代码片段: using (SPSite site = new SPSite("siteurl")) { SPServiceContext context = SPServiceContext.GetContext(site); UserProfileManager pmManager = new UserProfileManager(context); System.Collections.IEnumerator item = pmManager.GetEnumerator(); while (item.MoveNext()) { UserProfile userProfile = item.Current as UserProfile; object o = userProfile[PropertyConstants.Url].Value; } } |
注意此方法需要先添加引用下面2个dll文件:
以下是代码片段: using Microsoft.Office.Server; using Microsoft.Office.Server.UserProfiles; |
3.当然当你有一个可以直接从公司域环境中读取信息的帐号时,也可以直接去AD中读取用户profile,方法如下:
以下是代码片段: using System.DirectoryServices; static void Main(string[] args) { DirectoryEntry directoryEntry = new DirectoryEntry("LDAP://ads.autodesk.com", @"youraccount", "password",AuthenticationTypes.Secure); DirectorySearcher ds = new DirectorySearcher(directoryEntry); ds.Filter = "(&(objectCategory=Person)(objectClass=User))"; SearchResultCollection collection = ds.FindAll(); int count = 0; foreach (SearchResult sr in collection) { System.DirectoryServices.DirectoryEntry det = sr.GetDirectoryEntry(); PropertyCollection pc = det.Properties; if (det.Properties["mail"].Value != null && det.Properties["sAMAccountName"].Value != null) { Console.WriteLine(det.Properties["mail"].Value.ToString() + "--------" + det.Properties["sAMAccountName"].Value.ToString()); count++; } if (det.Properties["sAMAccountName"].Value.ToString() == "your account") { foreach (string propName in pc.PropertyNames) { foreach (object value in det.Properties[propName]) Console.WriteLine(" property = {0} value = {1}", propName, value); } } } Console.WriteLine(count); Console.Read(); } |
分享到:
相关推荐
AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010
在SharePoint 2013和2016中,User Profile Service可以通过SharePoint PowerShell cmdlets或API进行编程访问。这个解决方案可能利用了这些接口来读取用户列表,然后将指定的图片文件批量上传到对应的用户配置文件中...
在SharePoint环境中,权限管理和用户访问控制是确保数据安全和合规性的关键部分。本项目名为 "SharePoint设置用户组访问权限WebPart",其核心功能是通过WebPart组件来实现用户组权限的判断与页面跳转,从而为用户...
通过rest服务在js中获取任意用户的userprofile信息
为了满足不同场景下的需求,SharePoint 提供了多种访问控制机制,其中匿名访问是一种非常重要的功能。它允许非认证用户访问某些特定的内容,这对于对外分享文档或信息非常有用。 #### 二、匿名访问配置方法 ##### ...
在SharePoint 2013环境中,AD(Active Directory)是组织用户身份验证和权限管理的核心组件。当AD域中的用户密码需要更改时,这会影响到用户在SharePoint站点上的登录和访问权限。本文将深入探讨如何修改AD密码以及...
- 对于一个已有的 Web 应用程序,可以扩展新的 IIS 网站来实现两种访问方式。 - 在“管理中心” -> “创建或扩展 Web 应用程序” -> “扩展现有 Web 应用程序”,选择原有 Web 应用程序,指定新端口,并允许匿名...
在SharePoint 2021环境中,系统默认不提供直接修改Active Directory (AD)域用户密码的功能,也不支持以其他用户身份登录。然而,通过自定义开发和利用Future的方式,可以实现这些功能。本文档主要介绍了如何实现这两...
本文将详细探讨备份、还原和移动 SharePoint 网站的几种方法,帮助管理员确保数据的完整性和业务连续性。 1. **SharePoint 内置备份功能** - SharePoint 提供了内置的备份工具,允许管理员执行网站集级别的备份。...
当需要在Master Page中动态展示List的数据时,有几种常见的实现方法。 首先,我们可以创建一个自定义User Control。这种方式涉及编写C#代码,利用SharePoint Object Model来获取List中的数据。User Control可以封装...
自行开发的SharePoint 2013修改AD域用户密码的WebPart,对于大中型的企业,特别是基于windows ad域管理的用户,如果能够在Sharepoint直接修改当前用户的windows 活动目录(AD)域用户密码,这样能够极大方便用户变更AD...
在IT领域,尤其是在企业环境中,整合Active Directory (AD)与SharePoint是常见的需求,以便统一管理用户身份和权限。本文将详细介绍如何将AD用户导入到SharePoint 2010中,实现用户账户的同步。 首先,SharePoint ...
1. 讨论区:在SharePoint中文社区模板中,讨论区是一个重要的组件,它允许用户创建主题,发表观点,进行互动交流。管理员可以设置权限,控制谁可以创建新话题,以及如何管理讨论内容,如审批、删除或锁定帖子。 2. ...
本文详细介绍了如何在SharePoint 2013中恢复“切换用户”菜单的方法,这对于那些需要频繁切换账户进行测试或管理工作的人来说尤为重要。通过简单的文件编辑,即可实现该功能,大大提升了工作效率。
在SharePoint 2010中,用户配置文件服务不仅提供了个性化的用户体验,还支持元数据管理,帮助企业更好地组织和搜索信息。 用户配置文件服务的组成部分包括: 1. **用户配置文件应用**:这是整个服务的基础,负责...
在SharePoint中,文档库是存储和管理文件的核心组件,它允许用户上传、下载、编辑和版本控制文件。然而,为了确保数据的安全性和完整性,有时我们需要对用户的权限进行精细控制,防止未经授权的用户删除他人上传的...
在SharePoint中,你可以使用POST方法上传文件,GET方法下载文件,PUT更新文件,DELETE删除文件。通常,这些请求需要设置正确的HTTP头,如Content-Type、Authorization(包含Access Token),以及URL参数,指向...
在SharePoint中,它可以让用户通过单一登录(Single Sign-On, SSO)服务访问多个系统,提高用户体验。 5. **WsFederation**:文件名中的"IdentityServer4.WsFederation-dev"可能是指IdentityServer4的一个组件,它...
在早期的 SharePoint Portal Server 2003 版本中,用户管理是与 Active Directory 密切相关的,这意味着所有用户必须拥有 AD 账户才能访问 SharePoint 站点。然而,这种限制在 SharePoint Server 2007 中得到了改进...