sábado, 29 de noviembre de 2008

Error Inesperado al usar controles de ASP.NET en una masterpage

Es probable que al utilizar o insertar controles de ASP.Net, mientras que en el SharePoint Designer se muestren correctamente, en el Explorer aparezca el mensaje "Error Inesperado".
Sucede al insertar un control xmldatasource en la masterpage. Pero también lo hace cuando se insertan controles propios del asp.net.

Al ejecutar el Event Viewer, en System veremos el siguiente error:

Source DCOM. The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID {61738644-F196-11D0-9953-00C04FD919C1} to the user NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20). This security permission can be modified using the Component Services administrative tool.


La solución es la siguiente:
Verificar cual es la aplicación que está dando el error, para esto en la ventana de comandos ejecutamos regedit.exe, y una vez en la registry, buscamos ese ID de aplicación.
Nos encontraremos que la aplicación es la siguiente: IIS WAMREG admin Service.
El problema es que el usuario NT AUTHORITY (o aquél que configuramos en el IIS) no tiene permisos de acceso remoto para esta aplicación, por lo que deberemos otorgárselos, de la siguiente manera:


  • En Adminitrative Tools, ejecutar Component Services.


  • Ubicar la aplicación que está dando problemas: IIS WAMREG admin Service, hacer botón derecho del mouse y hacer clic en propiedades.
  • Hace clic en el tab Security.



  • Hacer clic en Edit (Se visualizarán los usuarios con sus permisos)
  • Hacer clic en Add…
  • Buscar el usuario que necesita estos permisos, y agregarlo.
  • Otorgarle los permisos.

jueves, 27 de noviembre de 2008

Errores SPSearch (usuario) y oSearch (usuario)

Estos errores pueden llegar a darse en el momento que se está configurando por primera vez después de una instalación el servicio Windows SharePoint Services Help Search (también puede darse cuando se configura por primera vez el Office SharePoint Server Search).

Usuario es la cuenta con la cual se está tratando de iniciar el servicio.

La solución es agregar el nombre de dominio al usuario, 
(nombre-dominio\nombre-usuario) 

jueves, 20 de noviembre de 2008

Problema con SPSqlDataSource

SPSqlDataSource: Este control no permite connection strings con las siguientes keywords: 'Integrated Security', 'Trusted_Connection'


Hay varios controles en el sitio web utilizando controles SqlDataSource. Sin embargo, en tiempo de ejecución, se dispara un error como el siguiente:

Microsoft.SharePoint.WebPartPages.DataSourceControlDisabledException: This control does not allow connection strings with the following keywords: 'Integrated Security', 'Trusted_Connection'.

Esto sucede porque el SharePoint pone un tagMapping en el web.config que mapea el SqlDataSource de ASP.NET a su SPSqlDataSource. Una solución bastante simple es la siguiente, quitar el tagmapping. Sin embargo, no podemos eliminar la línea, debemos usar el elemento remove.

<remove tagType="System.Web.UI.WebControls.SqlDataSource, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

Esto nos permitirá trabajar con el control, pero debemos tener en cuenta que para utilizar el control debemos registrar al SqlDataSource de ASP.NET como un control seguro.

<SafeControl Assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="System.Web.UI.WebControls" TypeName="SqlDataSource" Safe="True" AllowRemoteDesigner="False" />

ViewFormPagesLockdown: Característica de seguridad para no acceder a recursos internos de MOSS

Este Feature se puede utilizar sólo para MOSS 2007. En casos donde el tipo de template utilizado para la creación del sitio hubiese sido Publishing, ya se encuentra activado. Caso contrario hay q activarlo manualmente, para ello se utiliza el comando stsadm.exe que se encuentra en el siguiente directorio:

C:\program files\common files\microsoft shared\web server extensions\12\bin

Este feature sirve para bloquear el acceso de los usuarios anónimos y de aquellos que no tengan permiso de contribución en un sitio web. Tiene sentido si lo que se está publicando es un sitio web para mostrar información.

Los pasos a seguir son: si el usuario anónimo se encuentra activo accedemos con nuestro usuario administrador a /_layouts/setanon.aspx y desactivamos que el usuario anónimo tenga acceso completo a la web.

Ejecutamos el comando de activación de este feature:

Stsadm –o activatefeature –url http://sitioweb –filename ViewFormPagesLockdown/feature.xml

Luego volvemos a entrar a /_layouts/setanon.aspx y activamos que el usuario anónimo tenga acceso al sitio web completo.

Esto bloquea el acceso a /pages, allitems.aspx, dispform.aspx, etc.

Esta regla de bloqueo de acceso se dará a solo aquellos usuarios que tengan acceso de lectura limitado.

Por ende como buena práctica es necesario que todo lo que se muestre en una página de elementos web donde su fuente de datos se corresponda a una lista de sharepoint, no se agregue la lista en si a la zona de elementos web sino que se agregue a través del sharepoint designer una vista de elementos webs donde se muestren todos sus elementos, si la idea es ver el conjunto de datos y luego elegir un hipervínculo en las condiciones anteriores se hubiese insertado la lista y luego al hacer clic se accedía a la página dispform.aspx… como dicha página también queda bloqueada, lo que deberíamos hacer es crear una página de visualización para registros cuyo filtrado corresponde al parámetro ID que viene por querystring.

La sentencia de desactivación de este feature es:

Stsadm –o deactivatefeature –url http://sitioweb –filename ViewFormPagesLockdown/feature.xml

Estilo para un WebPart en Particular

Todos los elementos web responden a los estilos definidos en la plantilla css que corresponde al theme elegido, de no encontrar ese estilo en la misma lo busca en el archivo core.css.
No se pueden editar los formatos cuando se setean las propiedades del mismo. Ni cambiar el estilo por código.


El truco para hacer esto en una página de elementos web es el siguiente:



  1. En la página de elementos web donde se desea implementar este cambio de imagen, agregar un Elemento Web Editor de Contenido.

  2. Editar y en las propiedades clic en el botón Editor de Código Fuente y escribir ahí el estilo de la siguiente manera:

<style>
#MSOZoneCell_WebPart_WPQ_ TABLE TR TD TABLE TR TD .ms-WPTITLE {BACKGROUND-IMAGE:url(\_layouts\images\nom_imagen.gif);font-weight:bold;font-family:Tahoma,sans-serif;color:#ffffff;font-size:10pt;}#MSOZoneCell_WebPart_WPQ_ TABLE TR TD TABLE TR TD .ms-WPHeader {BACKGROUND-IMAGE:url(\_layouts\images\nom_imagen.gif);}</style>

Donde:
#MSOZoneCell_WebPart_WPQ_ será reemplazado por el webpart al que corresponda aplicar el cambio de estilo, por ejemplo:

#MSOZoneCell_WebPartWPQ3
El número 3 del ejemplo corresponde al nro. de orden en el que fue definido el elemento web en la página.