Todos los usuarios tienen derechos suficientes para leer la base de datos de Perfiles y para actualizar algunos de los campos de su propio Perfil, pero solamente Administradores pueden cambiar la configuración de las propiedades.
Todo el trabajo lo realiza la funcion "GetProfile" (la puede encontrar en el archivo "WebPart1.cs" que puede descargar desde este mismo sitio), y que acepta como parámetros la "SPWeb" del sitio, el usuario y el nombre del campo que se desea leer, devolviendo a su vez el valor del campo
string strUrl = myWeb.Site.Url;
TopologyManager myTopMan = new TopologyManager();
PortalSite myPorSit = myTopMan.PortalSites[new Uri(strUrl)];
PortalContext myPorCon = PortalApplication.GetContext(myPorSit);
UserProfileManager myUserProMan = new UserProfileManager(myPorCon);
UserProfile myUserProfile = myUserProMan.GetUserProfile(myUser.LoginName);
strTerug = myUserProfile[PropertyName].ToString();
Aqui puede encontrar el codigo de la WebPart