Skip Ribbon Commands
Skip to main content

Jesus Rio

:

Home
Blog de Jesus Rio
January 05
Exclusión de sitios rastreados en Sharepoint

 

Es posible excluir nuestros sitios MOSS 2007 o determinadas páginas del rastreo por parte de los buscadores web utilizando la opción “Visibilidad de la búsqueda” a nivel de sitio web:

visibilidadRobots

Al excluir nuestro sitio de la búsqueda MOSS incluirá automaticamente en nuestro html la etiqueta:

<META NAME="ROBOTS" CONTENT="NOHTMLINDEX"/>

Esto hará que los indexadores web ignoren dicha página si respetan el estándar de exclusión de robots.

Aunque cabe señalar que la mayoría de los motores de búsqueda no entienden el valor “NOHTMLINDEX” sino el valor estandar “NOINDEX”. Además la etiqueta generada automaticamente por MOSS puede crearnos problemas de accesibilidad (debido a la combinación de mayúsculas y minúsculas) si nuestro sitio lo exige. Lo correcto sería generar un

<meta name="ROBOTS" content="NOHTMLINDEX" />

Por estas razones es recomendable reemplazar el control RobotsMetaTag presente en nuestra página master por un control personalizado que genere el html correcto como se puede ver en este ejemplo.

Si no queremos excluir un sitio completo existen opciones para excluir determinadas listas, desde el menu de “Configuración avanzada” de la lista en cuestión:

visibilidadlista 

Se puede obtener mas información al respecto en:

http://technet.microsoft.com/es-es/library/cc287898%28office.12%29.aspx

 

El comportamiento se mántiene de forma análoga en Sharepoint 2010:

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.robotsmetatag.aspx

December 23
Exchange Web Services Managed API 1.1

En ocasiones es posible que necesitemos acceder a un buzón de Microsoft Exchange de forma programática. Para ello Exchange ofrece varias APIs en sus diferentes versiones. Las versiones antiguas de Exchange ofrecían APIs bastante potentes aunque algo engorrosas y dificiles de utilizar como se puede ver en esta serie de artículos:

 
 
Recientemente se ha publicado la Exchange Web Services Managed API 1.1 Esta es una API manejada, basada en los Exchange Web Services (EWS), muy intuitiva y más sencilla de utilizar que sus predecesoras. Además es posible usar esta API para acceder a servidores Exchange 2010 o 2007 SP1.
 
En el siguiente ejemplo podemos ver como se accedería a los primeros 10 mensajes de la bandeja de entrada (inbox) de nuestro buzón,  cuyo asunto sea "Test", ordenado por fecha y mostraremos el "sender" de dichos mensajes:
 
1. Desde Visual Studio 2010 creamos una referencia a Microsoft.Exchange.WebServices.dll y hacemos un using de:
 
  using System.Web;
  using Microsoft.Exchange.WebServices.Data;
 
2. Nos conectamos a Exchange (por defecto usando las credenciales del usuario con el que estamos logados):
 
  ExchangeService service = new ExchangeService();
  //Tambien podríamos especificar unas credenciales de forma explícita
  //service.Credentials = new NetworkCredential("username", "password", "domain");
 
3. Hacemos un Autodiscover para establecer el endpoint del servicio EWS usando nuestra cuenta de correo:
 
  service.AutodiscoverUrl(usuario@dominio);
  //Tambien se podría hacer manualmente si conocemos la url del servicio EWS
  //service.Url = new Uri("urldenuestroservicioEWS");
 
4. Formamos nuestra consulta:
 
  ItemView view = new ItemView(10);
  view.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
  view.PropertySet = new PropertySet(
                BasePropertySet.IdOnly,
                ItemSchema.Subject,
                ItemSchema.DateTimeReceived);
 
5. Ejecutamos la consulta: 
 
  FindItemsResults<Item> findResults = service.FindItems(
                WellKnownFolderName.Inbox,
                new SearchFilter.SearchFilterCollection(
                    new SearchFilter.ContainsSubstring(ItemSchema.Subject, "Test")),
                view);
 
6. Mostramos los resultados:
 
  Console.WriteLine("Total number of items found: " + findResults.TotalCount.ToString());
  foreach (Item item in findResults.Items )
    {
        EmailMessage message = EmailMessage.Bind(service, item.Id );
        Console.WriteLine(message.Sender.Name);
    }
 
Enlaces relacionados:
Microsoft Exchange Web Services Managed API 1.1 (Documentación)
http://msdn.microsoft.com/en-us/library/dd633709%28EXCHG.80%29.aspx
 

 

November 11
Protegiendo nuestro site público con Lockdown mode en MOSS 2007

Cuando publicamos en internet un site público de forma anónima (sin autenticación) debemos tener en cuenta, entre otras, algunas cuestiones básicas de seguridad como las siguientes:

- Desactivar la “Autenticación de Windows Integrada” en el Proveedor de Autenticación de la extensión de la aplicación que se publica en Internet. Esto evitará que sea posible logarse en la aplicación desde el exterior.

 autenticacion

- Activar el “Lockdown Mode” mediante el comando: stsadm -o activatefeature -url <site collection url> -filename ViewFormPagesLockDown\feature.xml

Esto evitará que los usuarios puedan acceder a urls propias de administración como por ejemplo urls del tipo:

Hay que tener en cuenta que el Lockdown mode también bloqueará la interfaz de servicios web del portal: http://[servidor]/[sitio]/_vti_bin/spsdisco.aspx y similares.

Si el acceso anónimo estaba activado antes de la activación de la feature, debe ser desactivado y vuelto a activar para que los cambios surtan efecto. Si nos encontramos en este caso, debemos además tener en cuenta que si en un sitio hubíesemos roto la herencia de permisos para asignar permisos específicos, ese sitio no hereda la nueva configuración, con lo cual deberíamos heredar de nuevo los permisos y luego volver a asignar los originales si queremos que el Lockdown mode tenga efecto en ese sitio. Esto puede resultar frustrante en un portal de gran tamaño donde se hubiera hecho una gran personalización de los permisos. En ese caso podría sernos de utilidad el

Sharepoint Access Checker Web Part que nos muestra graficamente los puntos en los que se ha realizado una ruptura de la herencia de permisos.

Access Checker

Mas información en:

Portales de acceso anónimo y la característica LockDown

Anonymous Users, Forms Pages, and the Lockdown Feature
Plan security for an external anonymous access environment

November 02
Conectando Visual Studio 2008 a Team Foundation Server 2010

 

Al migrar una infraestructura de Team Foundation Server 2008 (TFS2008) a Team Foundation Server 2010 (TFS2010) es posible migrar los proyectos a TFS2010 pero no migrar los proyectos a Visual Studio 2010 (VS2010). Es decir, podriamos tener nuestros proyectos en el TFS2010 pero seguir utilizando el VS2008. Esto podría ser aconsejable para proyectos antiguos que van cayendo en desuso o simplemente proyectos que no queramos recompilar por algún tipo de incompatibilidad.

 

Si intentamos conectarnos al TFS2010 desde el Team Explorer del VS2008 es posible que nos encontremos con mensajes de error de diversos tipos :

  • TF31001:Team Foundation cannot retrieve the list of team projects from Team Foundation Server
  • TF253022: You must update your client with the Forward Compatibility Update in order to connect to the Team Foundation Server that you selected
  • O también los siguientes:

ErrorTFS1 ErrorTFS2

 

Es estas situaciones necesitaremos instalar la Actualización de Compatibilidad del Service Pack 1 de VS2008 para TFS2010 aunque esto no es tan sencillo como pudiera parecer. Dicha actualización está dirigida al Team Explorer de nuestro VS2008, pero no basta con instalarla sin mas sino que debe hacerse en un orden concreto.

 

Investigando los números de versión de nuestra instalación podemos detectar si nos encontramos en un “modo mixto no soportado”. La solución consiste en reinstalar el Service Pack 1 después de haber instalado el Team Explorer. En mi caso el orden adecuado ha sido el siguiente:

- Instalar VS2008

- Instalar Service Pack 1 de VS2008

- Instalar Team Explorer 2008

- Reinstalar Service Pack 1 de VS2008 (para que aplique los cambios sobre Team Explorer)

- Instalar la Actualización de Compabilidad de Service Pack 1

 

De esta forma podremos conectarnos con exito al TFS2010. Debería prestarse atención al hecho de instalar todos esos productos en el mismo idioma.

 

En cualquier caso debemos tener en cuenta que al conectarnos a TFS2010 desde Team Explorer 2008 habrá ciertas características de TFS2010 no disponibles. Se pueden obtener más detalles en la siguiente tabla de compatibilidad de TFS2010 y versiones antiguas de Team Explorer.

 

En algunos blogs se comenta la posiblidad de manipular las entradas del registro de windows donde Team Explorer almacena las conexiones a los servidores de TFS pero en mi caso las soluciones propuestas no han funcionado.

 

De forma análoga es posible hacer la conexión también desde Visual Studio 2005, utilizando la Actualización de Compatibilidad de VS2005

 

Mas información en:

http://netrsc.blogspot.com/2009/11/tf30335-connecting-visual-studio-2008.html

http://coderjournal.com/2010/02/connecting-visual-studio-2008-to-team-foundation-server-2010/

http://software.intel.com/en-us/blogs/2009/06/10/connecting-visual-studio-2008-team-explorer-to-team-foundation-server-2010/

October 20
Fix para la Migración a Team Foundation Server 2010 (TFS 2010)

 

Al hacer una migración “in-place” desde TFS 2005 a TFS 2008 o TFS 2010 es muy posible obtener errores HTTP 404(No encontrado), o errores del tipo “Invalid list template” a la hora de acceder a los portales WSS de los proyectos migrados (incluso aunque la migración de los proyectos TFS se haya realizado con exito).

 

image

 

Si al analizar el problema se detectan en el Log de MOSS 2007 errores del tipo:

 

Failed to find <ListTemplate> tag corresponding to ID "104", tried both onet.xml for site definition ID "1" language "1033" and global site definition.  Operation failed.

lo más probable es que el error este causado por la ausencia de ciertos archivos requeridos por la plantilla de sitios que utilizan los portales de los proyectos basados en SCRUM.

La solución consiste en incorporar los archivos que faltan en el servidor MOSS en las rutas:

  • Program files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Layouts (Instalación MOSS 2007)
  • Program files\Common Files\Microsoft Shared\Web Server Extensions\60\Template\1033 (Instalación previa de WSS 2.0)

 

A la hora de aplicar esta solución debe tenerse en cuenta el idioma en que se ha realizado la instalación de los diferentes productos. En este ejemplo la instalación estaba en idioma ingles (en-US), de ahí el nombre de carpeta “1033”, si nuesta instalación está en español, obtendremos errores que mencionan el lenguaje “3082” y los ficheros a copiar descritos en la solución se deberían incorporar a dicha carpeta.

Al incorporar dichos ficheros al servidor deberíamos de poder acceder a los portales sin problema.

October 19
MOSS 2007 & IIS7

 

Recientemente he tenido un problema al migrar un portal MOSS 2007 desde una granja basada en W2003 a W2008. El problema consistía en que la descarga de documentos fallaba mostrando un error HTTP 404(No encontrado) cuando la carpeta en la que estaban contenidos los documentos contenía el signo “+”. El motivo es que W2008 utiliza IIS7 donde por defecto y por motivos de seguridad el signo “+” no se admite ya que el filtro de urls de IIS7 rechaza dichas peticiones:

image

 

Es posible desactivar este filtro desde la consola de IIS7 o manualmente desde el web.config de la aplicación (teniendo en cuenta claro está los riesgos de seguridad):

    <security>

            <requestFiltering allowDoubleEscaping="true" />

    </security>

 

Esta no es una característica exclusiva de MOSS 2007 sino que es una opción de configuración de IIS7 con lo cual problemas similares se producirán con cualquier tipo de aplicación/tecnología.

 

Se puede encontrar información adicional en http://www.ifinity.com.au/Blog/EntryId/60/404-Error-in-IIS-7-when-using-a-Url-with-a-plus-sign-in-the-path

 

En casos similares también es importante tener en cuenta la lista de caracteres no válidos en sitios, carpetas y ficheros en Sharepoint.

September 09
Desarrollo sobre OCS 2007 R7

Existen diferentes APIs para desarrollar sobre Office Communication Server (OCS).

Para versiones previas a la R2, la mejor opción es la api basada en Ajax: Microsoft Unified Communications AJAX SDK . Utilizando dicha api es posible, entre otras cosas, integrar en nuestras aplicaciones web ciertas características de mensajería instantánea ofrecidas por OCS. Microsoft ofrece incluso completos ejemplos de desarrollo de este tipo.

 

Con la llegada de la versión R2 (Microsoft Office Communications Server 2007 R2) la api basada en AJAX deja de estar recomendada (a pesar de seguir existiendo de forma interna con un formato de mensajes distinto) y la recomendación de Microsoft es utilizar la api UCMA 2.0: Microsoft Unified Communications Managed API 2.0 SDK . Esta api sigue un enfoque muy distinto, no es una api específica basada en AJAX sino que es una api manejada, mucho mas generíca que nos permite acceder a gran parte de las características que constituyen la infraestructura de OCS R2. UCMA 2.0 nos proporciona una gran flexibilidad pero al mismo tiempo es una api extensa y más compleja de utilizar sobre todo si realizamos un desarrollo desde cero.

 

Para facilitar las cosas, si lo que pretendemos es exponer las funcionalidades de OCS R2 a través de la web, es muy recomendable utlizar el UCMA 2.0 WCF Interface, se trata de un interfaz WCF que permite exponer dicha funcionalidad a traves de servicos web REST.

 

Un buen punto de partida para cualquier desarrollador que se enfrente a un proyecto sobre OCS R2 es el Centro de desarrollo para UCMA 2.0

May 05
Vulnerabilidad XSS en MOSS
Microsoft esta investigando una posible vulnerabilidad XSS (Cross-site scripting) que podría afectar a MOSS 2007 y WSS 3.0.

El problema parece afectar a los archivos de ayuda (help.aspx) presentes en la carpeta "12\TEMPLATE\LAYOUTS". Mientras Microsoft trabaja en un parche de seguridad que solucione el problema, es posible mitigar el problema de varias formas:

- En este artículo se describe el problema y una posible solución consistente en inutilizar los ficheros de ayuda.
- En esta advertencia de seguridad se propone como workaround eliminar los permisos de acceso a dichos ficheros de ayuda mediante un comando del tipo:
cacls "%ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS\Help.aspx" /E /P everyone:N

Ninguna de las soluciones es perfecta ya que en ambas estaríamos inhabilitando las opciones de ayuda pero pueden ser una buena forma de eliminar el riesgo mientras Microsoft proporciona un parche de seguridad.
March 24
Disponibles los videos del MIX 2010
Un año mas se ha celebrado el MIX (Las Vegas, 15-17 Marzo) y un año mas se publican las sesiones completas en la sección de videos de su web.

El MIX es un evento en donde se presentan las novedades más importantes que veremos en todo el año con relación a las tecnologías Microsoft a nivel de desarrollo y diseño.

La visualización de estos videos es una forma ideal de tener una visión global de todas las novedades que nos esperan y una excelente oportunidad de practicar nuestro inglés técnico.
 

 About this blog

 
About this blog
Welcome to SharePoint Blogs. Use this space to provide a brief message about this blog or blog authors. To edit this content, select "Edit Page" from the "Site Actions" menu.