SPUtility, la gran desconocida

Muchos somos los que desarrollamos soluciones para MOSS o WSS y en ocasiones, damos muchas vueltas para obtener información o realizar acciones que ya existen por defecto pero no lo sabemos. En esta entrada, vamos a ver algunas de las utilidades que proporciona la clase SPUtility, hay muchas más y en función de las necesidades de cada uno, tendrán o no sentido, pero en estas son algunas de las que he utilizado hasta la fecha.

Para hacer uso de esta clase, es necesario incluir la siguiente línea:

using Microsoft.SharePoint.Utilities;

Antes de comentar algunos de los métodos que proporciona, destacar que una de las ventajas de esta clase, es que al tratarse de una clase estática, no necesitamos instanciarla, lo cual facilita el acceso desde cualquier parte de nuestro código. A continuación describo la utilidad y como utilizar algunos de los métodos de ésta clase:

·    EnsureSiteAdminAccess: éste método permite validar si el usuario actual es administrador del sitio al que accede. Existen otros métodos para validar esto, pero lo interesante es que en este caso, si no se trata del un usuario administrador, aparecerá la ventana de login tres veces, dando la opción al usuario a acceder con otra cuenta. En caso de que el usuario no tenga acceso, se le enviará a la página de acceso denegado. En el código del ejemplo, se utiliza un control de usuario que estará cargado en un webpart.

protected void Page_Load(object sender, EventArgs e)
{
    SPUtility.EnsureSiteAdminAccess(SPContext.Current.Web);
    //Resto del código
}

·    GetGenericSetupPath: ¿quién no ha necesitado alguna vez la famosa ruta hasta el directorio 12? Este método nos devuelve la ubicación del directorio de instalación, en la mayoría de los casos es c:Program Files…….12 pero no queda demasiado bien dejar el código con estas ruta y si cambia necesitaremos realizar modificaciones. En el caso del ejemplo, obtenemos la ruta hasta la carpeta features.


string directorioFeature= SPUtility.GetGenericSetupPath("template\features");


SendEmail: permite enviar correos electrónicos haciendo uso de las configuraciones de la granja.


string subject = "Correo electronico de notificación de " + SPContext.Current.Web.Title;
string body = "El cuerpo del correo electronico a enviar";

SPUtility.SendEmail(SPContext.Current.Web, false, false, "miemail@miemail.com", subject, body);

·    TransferToErrorPage y TransferToSuccessPage:permiten redirigir a las páginas por defecto de error o bien de operacón realizada con éxito.

Evidentemente no son todos los métodos ya que la idea principal es ver como se pueden utilizar éstos métodos.

Finalmente, recomiendo que visitéis en el SDK los métodos y propiedades que proporciona ésta clase, aunque aviso que no todos están documentados.

SDK Clase SPUtility