Questo è un altro post nel mio serie in corso su come utilizzare jQuery con SharePoint.
Se volete saperne di più su jQuery, Mi raccomando: jQuery in azione Orso Bibeault e Yehuda Katz.
Una delle prime cose che ho pensato, una volta iniziato a giocare con jQuery, era se abbiamo potuto usarlo per garantire una visualizzazione di SharePoint. La risposta è "no" (o almeno, Non sto sostenendo che è possibile). Tuttavia, è certamente possibile rendere difficile per le persone a vedere una vista particolare.
Ho iniziato con il mio ambiente sandbox quando si lavora su questo. Ho scritto su quell'ambiente: Facile e veloce: Create Your Own jQuery Sandbox per SharePoint.
Per "garantire" la vista, seguire questi passi:
- Creare una visualizzazione che si desidera proteggere. L'ho fatto e la chiamarono "Visualizzazione protetta".
Questo è ciò che sembra quando non si è "protetto":
- Aggiungere una web part editor contenuto alla pagina di visualizzazione utilizzando il trucco descritto nell'articolo della sabbiera (vale a dire. Aggiungi "PageView = Shared&ToolPaneView = 2" all'URL).
- Capire il vostro _spUserId di SharePoint attenendosi alla seguente procedura pazzo, credere o non:
- Aggiungere il seguente codice javascript per il tuo CEWP in visualizzazione codice:
Ho incluso tale avviso(_spUserId) linea in là per dimostrare come questo non è davvero una "protezione" di una vista, ma semplicemente rendendo più difficile vedere. Più che in un momento.
Fondamentalmente, jQuery è alla ricerca di un iFrame nella pagina che ha un attributo che contiene "Secured % 20View" nel suo valore. Una volta che trova, controlliamo per vedere se l'utente corrente è "13". Se è, camminiamo fino il DOM per un <TR> Tag (che ho capito di visualizzazione origine e rintracciando) e quindi sostituendo quel tag TR con il mio messaggio. Davvero non so come robusto questo è (Io sono molto diffidente, Infatti), ma ha funzionato nella mia sandbox. Se trovo un modo migliore, I'll blog su di esso. Questo è il risultato:
Clicco il tasto OK e i dati viene sostituiti con un grande messaggio rosso:
Come si può dire, il devo implementare questa soluzione di "sicurezza" è di consentire la web part eseguire il rendering di se stesso. Dopo aver finito, Io sovrascrivere il contenuto mio "senza vista per voi!"messaggio.
Nonostante il fatto che non è davvero un "protetto '" vista, è potenzialmente utile e con qualche lavoro intelligente, che può eventualmente essere entità a protezione diretta in un senso più formale. Il problema fondamentale è che il client è sempre tutti i dati e poi, solo dopo che ottiene i dati, spazza. Se il cliente sta ottenendo i dati, un utente intelligente può impedire l'esecuzione a tutti di jQuery e vedere quello che lui/lei vuole vedere.
Ci sono altri inconvenienti. Questo approccio di "sicurezza" è basato fuori un _spUserId. Vorremmo che per davvero sicuro basato sul modello di protezione di SharePoint completo, o almeno di nome utente. Che diventa progressivamente più difficile, ma vedere alcune buone cose scritte su questo argomento, così mi auguro che c'è una buona risposta a tale problema.
L'elenco delle viste stessi dovrebbe essere assettato, Se possibile. Non ho provato a capirlo. Presumo che è possibile, ma davvero non risolve il problema di sicurezza fondamentale, perché qualcuno potrebbe ancora basta digitare l'URL di visualizzazione che vogliono (Se lo sapevano). Tuttavia, taglio ha un senso. È una caratteristica di buona usabilità e aiuta a offuscare le cose. Se un utente finale non sa che l'evento di vista esiste, probabilmente non proveranno ad usarlo. A volte, Questo è abbastanza buono.
Con la fortuna, Avrò più a scrivere su questo argomento nel tempo.
</fine>
Seguimi su Twitter a http://www.twitter.com/pagalvin