lunes, 12 de diciembre de 2011

[SharePoint 2010] - Resolver usuarios y grupos a partir de su Login Name o Email - SPUtility.ResolvePrincipal

Cuantas veces no hemos requerido buscar a un usuario a partir de su Email o de su LoginName, para obtener uno de estos datos, por ejemplo para enviarle un correo o asignarle una tarea dentro de un flujo de trabajo.

En el pasado utilizábamos el método GetLoginNameFromEmail de la clase SPUtility si conocíamos el email y necesitábamos el Login Name del usuario, sin embargo en la versión 2010 de la API de SharePoint este método ha sido marcado como obsoleto, lo que significa que si lo usamos producirá una alerta la cual nos recomienda, en su lugar, el uso del método ResolvePrincipal.

La ventaja de utilizar ResolvePrincipal es, en primera, que obtenemos de regreso un objeto del tipo SPPrincipalInfo el cual tiene varias propiedades útiles para trabajar con usuarios y grupos. Segunda, que como parámetro para realizar la búsqueda recibe el Display Name, Login Name o Email (solo uno de ellos), es decir que si conocemos cualquiera de estos tres valores de un usuario o grupo es posible resolverlo. Otro aspecto importante es que la búsqueda que realiza no está restringida a un sitio de SharePoint en particular.

A continuación un par de ejemplos de cómo utilizar este método para resolver usuarios.

SPWeb web = SPContext.Current.Site.RootWeb; //or SPControl.GetContextWeb(Context) or workflowProperties.Site.RootWeb, etc

//obtener el usuario a partir del display name
SPPrincipalInfo info = SPUtility.ResolvePrincipal(web, "Homero J. Simpson", SPPrincipalType.User, SPPrincipalSource.MembershipProvider | SPPrincipalSource.Windows, null, false);

//obtener el usuario a partir del Email
info = SPUtility.ResolvePrincipal(web, "hsimpson@sp2010.com", SPPrincipalType.All, SPPrincipalSource.All, web.AllUsers, true);

Por último, aunque no menos importante, mencionar que este método no esta disponible en soluciones SandBox.

Happy Coding!

Etiquetas

SharePoint 2010 (38) Microsoft (32) Desarrollo SharePoint (31) Gerardo Reyes Ortiz (27) SharePoint (20) SharePoint 2013 (18) Errores SharePoint (12) México (10) PowerShell (9) Silverlight (8) Visio Services (7) Features (6) MVP (6) Silverlight 3 (6) WebCast (6) Workflows (6) Configuracion SharePoint 2010 (5) D.F. (5) API REST (4) Configuracion SharePoint 2010; (4) Troubleshooting (4) Visual Studio 2010 (4) Visual studio (4) WSS (4) Web parts (4) Apps (3) Comunidad SharePoint (3) Configuración SharePoint 2013 (3) ODATA (3) SharePoint Server (3) SharePoint; Instalación SharePoint; Troubleshooting; Search Service (3) Silverlight 3.0 (3) Silverlight Toolkit (3) WebParts (3) javascript (3) jquery (3) Eventos SharePoint (2) Office 2010 (2) PeoplePicker (2) REST (2) SQL Server (2) Scripting (2) Search Service Application (2) SharePoint Designer (2) UPA (2) UPS (2) Workflows SharePoint (2) host header (2) Apps Development (1) Big Bang (1) CAS (1) CSOM (1) Codeplex (1) CompartiMOSS (1) Configuracion SharePoint 2010; Errores SharePoint (1) Configuracion SharePoint 2010; SharePoint 2010 (1) Custom Actions (1) Custom Editor Parts (1) Delegate Controls (1) Deployment (1) DisableLoopbackCheck (1) Document Library (1) Entrevista (1) Examenes de Certificación (1) Extract WSP (1) FBA (1) FS4SP (1) Fakes (1) Fast Search Server 2010 For SharePoint (1) Fiddler (1) HTTP.SYS (1) HTTPS (1) JSON (1) Language Pack's (1) Latam (1) MAXDOP (1) MCSM (1) MSExpertos (1) MVC (1) Microsoft México (1) Microsoft; Codeplex; Screencast; (1) My Sites (1) SQL Server 2012 (1) SQL Server Reporting Services (1) Screencast (1) Screencast; (1) Service Applications (1) Service Pack (1) SharePoint 2007 (1) SharePoint 2010 SP 1 (1) SharePoint API (1) SharePoint Conference (1) SharePoint Emulators (1) SharePoint Farm (1) SharePoint Health Analyzer (1) SharePoint Magazine (1) SharePoint Online (1) SharePoint Search (1) SharePoint Test (1) SharePoint; Desarrollo SharePoint (1) Shims (1) Simposio (1) Simposio Latinoamericano (1) SkyDrive Pro (1) Soporte Microsoft (1) Templates (1) Tip (1) VSeWSS (1) Virtual Machine (1) Visual Studio 2012 (1) WCF (1) WSS; IIS 7 (1) Web API (1) Web Content Management (1) Web Services (1) Windows 8 (1) Windows Live ID (1) Xml (1) appcmd (1) iOS (1) jqGrid (1) onload function (1)