domingo, 8 de enero de 2012

Acceso anónimo a DocIdRedir.aspx en SharePoint 2010

El servicio de identificación de documentos (Document ID service ) en SharePoint 2010 permite proporcionar un enlace permanente a los documentos mediante la asignación de un identificador único para cada documento.
Los documentos estarán disponibles en una URL como esta:

http://localhost/_layouts/DocIdRedir.aspx?ID=P46NTRUENZ26-213-1

DocIdRedir.aspx takes care of this by looking up the document using the ID querystring parameter. It also takes care of the error handling in case you provide an invalid document id.

DocIdRedir.aspx se encarga de buscar el documento utilizando el parámetro de consulta ID. También se ocupa de la gestión de errores en caso de que proporcionar un documento de identidad inválido.

Uno de los problemas ... DocIdRedir.aspx no es de acceso anónimo. ¿Qué pasa si usted desea hacer documentos descargables a través de un enlace permanente en un sitio web público?
A continuación una versión accesible de forma anónima DocIdRedir.aspx:

Agregar referencia a Microsoft.Office.DocumentManagement.Pages

Esta dll tipicamente se encuentra en C:\inetpub\wwwroot\wss\VirtualDirectories\\_app_bin, no en la que estamos acostumbrados a encontrar los otros archivos DLL de SharePoint.
Puedo añadir este archivo DLL en una carpeta lib en mi proyecto y de referencia a partir de ahí.

Agregar una nueva layouts page para reemplazar a DocIdRedir.aspx

La llamé DownloadDocument.aspx, y además cambié la herencia de la página DocIdRedir. Sobrescribí la propiedad AllowAnonymousAccess la cual implementa UnsecuredLayoutsPageBase.

Esta cadena de herencia es DocIdRedir > LayoutsPageBase > UnsecuredLayoutsPageBase.

Finalmente sobreescribi el método OnLoad de DocIdRedir y ejecute el método base OnLoad .

public partial class DownloadDocument : DocIdRedir

{

protected override bool AllowAnonymousAccess { get { return true; } }

protected override void OnLoad(EventArgs e)

{

base.OnLoad(e);

}

}

Request via findler:

Fiddler request for DownloadDocument.aspx

Si se hace una solicitud por DocIdRedir.aspx mediante un usuario anónimo, vas a ver un 401 en el trace.

Fiddler request for DocIdRedir.aspx

Para leer:

http://msdn.microsoft.com/en-us/library/ee559302.aspx

http://kobikobi.wordpress.com/2010/09/29/sharepoint-2010-using-document-id-to-link-to-a-specific-version/

Fuente:http://blogs.claritycon.com/blog/

No hay comentarios:

Publicar un comentario