Mostrando entradas con la etiqueta SPSecurityTrimmedControl. Mostrar todas las entradas
Mostrando entradas con la etiqueta SPSecurityTrimmedControl. Mostrar todas las entradas

lunes, 17 de diciembre de 2012

Tips Info #86 Sharepoint 2010

1-Contenido condicional para usuarios anónimos y logueados

Una posibilidad es usar el control SPSecurityControl que permite mostrar contenido condicional para los usuarios dependiendo de sus permisos.

Este control no permite mostrar contenido sólo para usuarios anónimos.Para ello utilizaremos el control LoginView.

<asp:LoginView runat="server">
     <AnonymousTemplate>
        <span style="font-family: Arial; font-size: 10pt;">Bienvenido, Invitado
            <asp:LoginStatus ID="LoginStatusUsuarioAnonimo" runat="Server" />
        </span>
    </AnonymousTemplate>
    <LoggedInTemplate>
        Bienvenido,
        <asp:LoginName ID="LoginNameUsuarioLogueado" runat="Server" />
        <asp:LoginStatus ID="LoginStatusUsuarioLogueado" runat="Server" />
    </LoggedInTemplate>
</asp:LoginView>

El control LoginName mostrará el nombre del usuario logueado, y en el caso de usuarios anónimos no mostrará nada.

El control LoginStatus mostrará un link de Log Out para usuarios autenticados y un link de Log In para usuarios anónimos.

2-Formula para validar un email dentro de una columna de Sharepoint

Dos posibles fórmulas:

FORMULA 1

=(LEN(LEFT([Email],FIND("@",[Email])-1))>0)
+(LEN(RIGHT([Email],LEN([Email])-FIND(".",[Email],FIND("@",[Email]))))>0)
+(LEN(MID([Email],FIND("@",[Email])+1,FIND(".",[Email],FIND("@",[Email]))-FIND("@",[Email])-1))>0)
+(ISERROR(FIND(" ",[Email]))=TRUE)
=4

FORMULA 2

=IF(
  OR(
    ISERROR(FIND("@",Email)),
    ISERROR(FIND(".",Email,FIND("@",Email)))
  ),
  FALSE,
  AND(
    LEN(LEFT(Email,FIND("@",Email)-1))>0,
    LEN(RIGHT(Email,LEN(Email)-FIND(".",Email,FIND("@",Email))))>0,
    LEN(MID(Email,FIND("@",Email)+1,FIND(".",Email,FIND("@",Email))-FIND("@",Email)-1))>0,
    (ISERROR(FIND(" ",TRIM(Email))))
  )
)

3-Renombrar web application mediante powershell

$wapp = Get-SPWebApplication "SharePoint - 80"
$wapp.Name = "Intranet -80"
$wapp.Update()
Para verificar si se actualizó de forma correcta ejecute lo siguiente:
Get-SPWebApplication "Intranet -80"

4-Error al utilizar server object: The web server process that was being debugged has been terminated by Internet Information Services (IIS). This can be avoided by configuring Application Pool ping setting in IIS. See help for further details.

Por ejemplo al utilizar la siguiente línea de código SPListItemCollection collListItemsSrc = oList.GetItems(oView) , nos puede lanzar el error previamente definido.
Esto se debe a que el tamaño de la configuración “The maximum unresponsive ping time” es insuficiente. El default es de 90 segundos. Puedes aumentar el tiempo o deshabilitar el Ping Enabled.
image

5-Propiedad AllowEveryoneViewItems  de las librerias/listas


Esta propiedad permite acceder de forma directa a los documentos de una librería o a los attachments de una lista. Esta propiedad sólo funciona cuando los usuarios navegan directamente a un archivo a través del navegador, y no tiene ningún efecto sobre el resto de la interfaz de usuario o el modelo de objetos.


Esta propiedad es útil para trabajar con usuarios anónimos.


$web = Get-SPWeb -Identity http://url_sitio
$list = $web.Lists.TryGetList("titulo lista");
$list.AllowEveryoneViewItems = $true
$list.Update()

viernes, 16 de noviembre de 2012

Tips Info # 78 Sharepoint 2010

1-Cambiar la página de ingreso a la sección MySites

Cuando se hace click en MySites, Sharepoint nos lleva a “My Site Host” del site collection.

image_thumb9

Se puede cambiar la “landing page”, mediante powershell

$site = Get-SPSite http://mysitehost/
$web = $site.RootWeb
$folder = $web.RootFolder
$folder.WelcomePage = "tagprofile.aspx"
$folder.update()
$web.update()
$web.Dispose()
$site.Dispose()

TaggedItems

Las páginas que se pueden usar son:

default.aspx
person.aspx
organizationview.aspx
personcontent.aspx
tagprofile.aspx

2-Operation is not valid due to the current state of the object

Una actualización del Framework .NET configuró que el número de campos que son permitidos de publicar en una página fue seteado a 1000.

Este problema puede presentarse cuando se hace un restore de un backup de farm, cuando se publica un rdl (reporte de Reporting services) con gran cantidad de filtros (Ej: combos), cuando se usa muchos controles, etc.

Para solucionarlo, editar la siguiente línea del web.config:
<appSettings>
    <add key="aspnet:MaxHttpCollectionKeys" value="2001" />
</appSettings>

3-Mostrar sólo sites collection o sites en los resultados de búsqueda

Utilizar los siguientes querys: contentclass:”sts_site” contentclass:”sts_web”

ch537_7C57E6A3
SPOSearchSitesAll_thumb_36DE223F

4-Ocultar la ribbon mediante seguridad

Agregar el siguiente script de css en la master page

<style type="text/css">
div#s4-ribbonrow {
display:none;
}
</style>

<Sharepoint:SPSecurityTrimmedControl runat="server"
Permissions="AddAndCustomizePages, ManageLists">
<style type="text/css">
div#s4-ribbonrow {
display:block;
}
</style>
</Sharepoint:SPSecurityTrimmedControl>

5-Ejecutar un workflow a varios items de lista

Marcar los items que desea ejecutar el workflow, y ejecute “Check Out”

Check-Out1

A continuación ejecute “Check In”

Check-In1

miércoles, 27 de junio de 2012

Links útiles #40 Sharepoint 2010

1-Crear custom content type vía Visual Studio 2010

http://www.c-sharpcorner.com/UploadFile/54db21/content-types-in-sharepoint-2010-via-om/

2-Crear lista mediante Visual Studio 2010

http://www.c-sharpcorner.com/UploadFile/54db21/list-creation-in-sharepoint-2010-programmatically-using-vs-2/

3-Aplicar themes mediante una solución

http://www.c-sharpcorner.com/UploadFile/54db21/themes-in-sharepoint-2010-programmatically-using-vs-2010/

http://www.sharepointusecases.com/index.php/2010/09/automatically-apply-theme-to-a-sharepoint-foundation-2010-subsite/

4-Web Services y Business Connectivity Services

http://www.c-sharpcorner.com/UploadFile/Roji.Joy/connecting-to-a-web-service-using-business-connectivity-serv/

5-Deployar assemblies a global assembly

http://www.fewlines4biju.com/2012/06/deploy-assembly-to-globalassemblycache.html

6-Leer items de una lista con ECMA

http://sprider.org/2011/06/12/using-the-ecmascriptjavascript-client-object-model-to-read-lists-in-sharepoint-2010/

7-Ocultar la opción de upload múliplte para una document library particular

http://preachingsharepoint.blogspot.co.nz/2012/06/hide-multiple-upload-option-for.html

http://villpates.wordpress.com/2012/05/24/hide-multiple-upload-link-in-sharepoint-2010/

8-Subir un archivo mediante client object

http://ahujadhiraj.wordpress.com/2012/06/19/upload-a-image-in-the-document-library-and-update-its-metadata-using-client-object-model/

9-SPSecurityTrimmedControl: control que permite segmentar el contenido dependiendo de los permisos.

http://msdn.microsoft.com/en-us/library/ms476454

Algunos miembros útiles:

PermissionsString: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx

PermissionContext :http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spsecuritytrimmedcontrol.permissioncontext.aspx

PermissionMode: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spsecuritytrimmedcontrol.permissionmode.aspx

AuthenticationRestrictions: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spsecuritytrimmedcontrol.authenticationrestrictions.aspx

10-Obtener el último ID de un item creado

http://sharepointkunskap.wordpress.com/2012/06/20/three-ways-to-get-the-id-of-last-created-splistitem/

sábado, 16 de junio de 2012

Tips/info #32 Sharepoint 2010

1-Exportar soluciones de Sharepoint 2010

$nombreDir = "C:/Temp"
Write-Host Exporto soluciones a $nombreDir 
foreach ($solution in Get-SPSolution) 

    $id = $Solution.SolutionID 
    $titulo = $Solution.Name 
    $filename = $Solution.SolutionFile.Name
    Write-Host "Exportando ‘$titulo’ to …\$filename" -nonewline 
    try { 
        $solution.SolutionFile.SaveAs("$nombreDir\$filename") 
        Write-Host " – hecho" -foreground green 
    } 
    catch 
    { 
        Write-Host " – error : $_" -foreground red 
    } 
}

2-Mostrar el historial de workflows sólo para administradores

Abrir la página WrkStat.aspx desde la carpeta 14->template->layouts y agregar el siguiente control en la línea 128
<Sharepoint:SPSecurityTrimmedControl runat="server" Permissions="ManageLists"> y cierra el tag en la línea 239. El permiso está seteado en el campo “Permissions”.

3-Error Missing Web Part

WebPart class [GUID] is referenced [X] times in the database [WSS_Content], but is not installed on the current farm. Please install any feature/solution which contains this web part. Remedy: One or more web parts are referenced in the database [WSS_Content], but are not installed on the current farm. Please install any feature or solution which contains these webparts.

-- Obtengo el site que tiene el web part

select s.fullurl, d.DirName, d.leafname, tp_ZoneID, tp_partOrder
from webparts p
join alldocs d on (p.tp_PageUrlID = d.ID)
join sites s on (s.id = p.tp_siteid)
where tp_WebPartTypeId  = ‘GUID’

Una vez que obtengo el site donde está referenciado el web part, ingreso a la página y le agrego “?contents=1”, es decir entro a la página de mantenimiento, la cual me permite borrar el web part faltante.

4-Error The super user account utilized by the cache is not configured. This can increase the number of cache misses, which causes the page requests to consume unneccesary system resources.

La caché de objetos almacena propiedades de los elementos en Microsoft SharePoint Server 2010. La característica de publicación usa los elementos de esta memoria caché para representar páginas web. Los objetivos de la caché de objetos son reducir la carga en el equipo en el que se ejecuta SQL Server y mejorar el rendimiento y latencia de la solicitud. La caché de objetos realiza consultas como una de dos cuentas de usuario integradas: la cuenta de usuario súper del portal y la cuenta de lector súper del portal. Estas cuentas de usuario deben configurarse correctamente para garantizar que la caché de objetos funcione correctamente. La cuenta de usuario súper del portal debe ser una cuenta que tenga acceso de control total a la aplicación web. La cuenta de lector súper del portal debe ser una cuenta que tenga acceso completo de lectura a la aplicación web.

La cuenta de usuario súper del portal y la cuenta de lector súper del portal deben ser cuentas independientes que no se vayan a usar nunca para iniciar sesión en el sitio.

De forma predeterminada, la cuenta de usuario súper del portal es la cuenta de sistema del sitio y la cuenta de lector súper del portal es NT Authority\Servicio local.

Hay dos problemas principales con el uso de las cuentas integradas.

  1. El primer problema es que algunos elementos se desprotegen para la cuenta del sistema, por lo que cuando se realice una consulta que incluya estos elementos, se devolverá la versión desprotegida del elemento en lugar de la última versión publicada. Esto es un problema debido a que no es lo que un usuario espera que se devuelva, por lo que la memoria caché debe realizar una segunda consulta para recuperar la versión correcta del archivo. Esto tiene un efecto negativo en el rendimiento del servidor en cada solicitud que incluya estos elementos. Se produciría el mismo problema con cualquier usuario que tenga elementos desprotegidos, si la cuenta de dicho usuario se configuró como la cuenta de usuario súper del portal. Por esta razón, las cuentas configuradas como cuenta de usuario súper del portal y cuenta de lector súper del portal no deben ser cuentas que se usan para iniciar sesión en el sitio. Esto garantiza que el usuario no desproteja de forma accidental elementos y ocasiones problemas en el rendimiento.

  2. La cuenta de lector súper del portal predeterminada es NT Authority\Servicio local, que no se resuelve correctamente en una aplicación de la autenticación de notificaciones. Por lo tanto, si la cuenta de lector súper del portal no está configurada explícitamente para una aplicación de autenticación de notificaciones, al buscar las colecciones de sitios en esta aplicación se obtendrá un error de acceso denegado, incluso para el administrador del sitio.

Para autentificación clasic:

$wa = Get-SPWebApplication -Identity "<WebApplication>"
$wa.Properties["portalsuperuseraccount"] = "<SuperUser>"
$wa.Properties["portalsuperreaderaccount"] = "<SuperReader>"
$wa.Update()
Para autentificación vía claims:
$w = Get-SPWebApplication "http://<server>/"
$w.Properties["portalsuperuseraccount"] = "i:0#.w|domain\superuser"
$w.Properties["portalsuperreaderaccount"] = "i:0#.w|domain\superreader"
$w.Update()
5-Mostrar los sitios padres en el breadcrumb
Reemplazar en tu master page default este control
<SharePoint:SPLinkButton runat="server" NavigateUrl="~site/" id="onetidProjectPropertyTitle"><SharePoint:ProjectProperty Property="Title" runat="server" /></SharePoint:SPLinkButton>
por
<asp:SiteMapPath      
runat="server"      
SiteMapProviders="SPSiteMapProvider,SPXmlContentMapProvider"      
RenderCurrentNodeAsLink="false"      
NodeStyle-CssClass="breadcrumbNode"      
CurrentNodeStyle-CssClass="breadcrumbCurrentNode"      
RootNodeStyle-CssClass="breadcrumbRootNode"      
HideInteriorRootNodes="true"      SkipLinkText=""/>

viernes, 8 de junio de 2012

Links útiles #30–Sharepoint 2010

1-Debugeando resultados de Search

http://aghy.hu/AghyBlog_EN/Lists/Posts/Post.aspx?List=a2d07745-f748-4d3b-9c0d-8a15ff7fea35&ID=176

2-Usando SPSite

http://sharepointrelated.com/2012/06/05/error-using-move-spsite-cmdlet/

3-Reconstruyendo el servicio de search

http://smartrider.wordpress.com/2012/05/31/how-to-rebuild-search-service-application-in-sharepoint-2010/

4-Algunas cosas sobre restricciones de caracteres, longitud, etc en SharePoint 2010

http://www.sharepointjoel.com/Lists/Posts/Post.aspx?List=0cd1a63d-183c-4fc2-8320-ba5369008acb&ID=547

5-Deployar una ayuda custom para Sharepoint 2010

http://davidfrette.wordpress.com/2012/06/06/deploying-custom-help-with-sharepoint-2010/

6-Agregar usuarios al grupo farm de SHarepoint 2010 via script

http://www.idocs.info/index.php/2011/02/add-user-to-farm-admin-group-ps-script/

7-Ocultar la sección “All Site Content” mediante seguridad

http://dotnetfollower.com/wordpress/2012/06/sharepoint-how-to-hide-all-site-content-links-for-unprivileged-users/

8-Filtrado de lista mediante jquery

https://www.nothingbutsharepoint.com/sites/eusp/Pages/sharepoint-get-started-with-jquery-part-4.aspx

9-Crear un servicio de WCF para Sharepoint 2010

http://blog.sharepointbits.com/2010/04/custom-wcf-services-in-sharepoint-2010_17.html

10-Listar todas las librerias de forms (infopath)

http://consultingblogs.emc.com/robertoortega/archive/2011/10/26/list-all-infopath-forms-for-migration.aspx

domingo, 11 de marzo de 2012

Limitar partes de página o formatear el dataview basado en los permisos del usuario

En el web part Data View o Data Form puedes mostrar contenido condicional basado en los permisos del usuario actual gracias a la función ddwrt:IfHasRights() . Es decir mostrar ciertas partes de páginas

<xsl:if test="ddwrt:IfHasRights(mascara de permisos)">
contenido
</xsl:if>

<xsl:if test=”ddwrt:IfHasRights(4)”>Only Editors can see this text!</xsl:if>

De esta manera podremos ocultar lo que deseamos, ej: un campo de una lista.

080307_2245_SharePointD1

La lista de permisos (máscara) se puede encontrar en el archivo: CAML2XSL.XSL


martes, 24 de enero de 2012

Control SPSecurityTrimmedControl

Este control permite ocultar el contenido debido a una determinada definición de seguridad.  La solución anterior ocultaba en el lado del cliente (style.display='none') el contenido, ahora lo hace desde el servidor.

<SharePoint:SPSecurityTrimmedControl PermissionsString="AddAndCustomizePages, ManageLists" runat="server">
    <%--content %>
</SharePoint:SPSecurityTrimmedControl>