An Avanade Blogging Community

Welcome to An Avanade Blogging Community Sign in | Join | Help
in Search

Marco Rizzi - All around Sharepoint

Creare form raccolta dati utenti anonimi senza scrivere code-behind

Lo scopo di questo post è quello di indirizzare la realizzazione dei form di raccolta dati fruibili da utenti internet anonimi che fanno browsing di siti ospitati su SPS. Degli esempi di form possono essere Contact Us, Survey, Pool, Blog Post Comments, ecc…

Questo studio è dettato dal fatto che gli utenti anonimi non possono accedere alle pagine applicative di sharepoint su siti di tipo Publishing. Questo perchè i siti di publishing quando vengono creati sono configurati per limitare la pagine al quale gli utenti anonimi possono accedere.

Per ottenere l’elenco delle operazioni che gli utenti anonimi possono fare all’interno dei sito basta consultare l’elenco dei permessi base assegnati al ruolo Limited Access. Per vedere l’elenco occorre andare su Site Settings -> Advanced Permissions -> Permissions level e selezionare Limited Access.

 

Se comparassimo i permessi base attivati su un sito di Publising con un qualsiasi altro sito, noteremmo che sui siti di publishing il ruolo Limited Access ha disattivati i permessi View Application Pages e Use Remote Interfaces. Sebbene da UI non sia possibile modificare il ruolo Limited Access, è possibile agire sull’attivazione/disattivazione di una feature di effettua il lockdown dei siti. La feature in questione si chiama ViewFormPagesLockdown, quando è attivata i permessi precedentemente elencati vengono disattivati dal ruolo Limited Access, viceversa quando attivata. Per ulteriori info vedi allegato A.

Una volta che gli utenti anonimi possono accedere alle pagina applicative di SharePoint occorre configurare opportunamente la security, relativamente alle operazione che possono compiere gli utenti anonimi all’interno del sito e delle liste con particolare riguardo a cosa alle azioni permesse.

Consiglio quindi creare una nuova site collection, tramite gli alternate access mapping, che sarà usata come contenutore di tutte le liste utilizzate per le funzionalità di raccolta dati. In questo modo le configurazioni della security impatteranno solo una parte limitata del sito. Verificare eventualmente la possibilità di creare questa nuova site collection con un template diverso da quello di publishing, in modo da non dover neanche agire sulla configurazione delle security tramite la feature Lockdown. Considerare inoltre il contenuto di default di sito di publishing, tipo document library, master page and page layoy, style library, ecc… se ha senso per la soluzione che si andrà ad implementare.

 

Operazioni da seguire passo passo

Step 1 – Creare una nuova site collection e la lista per salvare i dati dei form

·         Creare una nuova site collection

·         Creare la lista ContactUs e configurarla (colonne e viste)

Step 2 – Configurare le security per accesso in scrittura dell’utente anonimo

·         Abilitare l’accesso anonimo da CA (è indifferente se sulla zona di default o su una zona diversa)

·        Abilitare l’accesso anonimo sul sito tramite Advanced Permission, Anonymous Access

·         Disattivare la feature di Lockdown
stsadm.exe –o deactivatefeature –url <site collection url> -filename ViewFormPagesLockdown\feature.xml

·         Disattivare l’accesso anonimo sul sito da CA

·         Disattivare l’accesso anonimo sul sito impostando a Nothing access

·         Riattivare l’accesso anonimo sul sito da CA

·         Riattivare l’accesso anonimo sul sito importando a Entire Site o Lists and Libraries secondo le esigenze

·         Verificare che il ruolo Limited Access abbia i permessi View Application Pages e Use Remote Interfaces

·         Sulla lista appena creata configurare la security facendo breakRoleInheritance e impostare anymonous access a Add item e View Items

Step 3 – Operatività utente anonimo

A questo punto della configurazione l’utente anonimo è in grado di scrivere sulla lista configurata, ma è anche in grado di visualizzare tutti gli item inseriti dagli altri non solo sulla lista ContactUs ma su tutte le liste.

E’ quindi necessario andare sulle liste che l’utente anonimo non deve avere accesso, fare un BreakRoleInheritance e dai privilegi dell’utente anonimo eliminare View Items. In questo modo l’utente anonimo avrà accesso alle sole liste che noi decidiamo e che dovranno essere quelle che contengono i dati dei form di import ed eventualmente quelle con elementi grafici.

Rimane quindi da oscurare l’elenco degli item presenti sulla lista sia dalla pagina allitems.aspx che su dispform.aspx. Per fare ciò è sufficiente aprire tali pagine con Sharepoint Designer e fare security trimming del html da visualizzare. Per fare Security trimming c’è un controllo OOB di sharepoint:

<Sharepoint:SPSecurityTrimmedControl runat="server" PermissionsString=" DeleteListItems">

    [content to be rights-trimmed]

</Sharepoint:SPSecurityTrimmedControl>

 

dove nella proprietà PermissionString è possibile indicare l’elenco dei permessi che gli utenti devono avere per visualizzare l’html contenuto all’interno di questa sezione.

In questo esempio ho inserito all’interno del controllo SPSecurityTrimmedControl tutto codice che è contenuto nel content PlaceHolderMain. Così quando l’utente anonimo andrà sulla pagina allitems.aspx vedrà una pagina senza contenuti.

Allegato A

http://blogs.msdn.com/ecm/archive/2007/05/12/anonymous-users-forms-pages-and-the-lockdown-feature.aspx

Allegato B

http://www.sharepointplatform.com/teamblog/Lists/Posts/Post.aspx?ID=31

Allegato C

http://www.sharepointplatform.com/teamblog/Lists/Posts/Post.aspx?ID=29

Published Tuesday, June 24, 2008 6:39 AM by marco.rizzi
Filed Under:

Comments

No Comments
Anonymous comments are disabled

This Blog

Post Calendar

<June 2008>
SuMoTuWeThFrSa
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

Syndication