Protezione di SharePoint List/Document Library viste sembra (sorta di) Possibile con jQuery

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:

  1. Creare una visualizzazione che si desidera proteggere. L'ho fatto e la chiamarono "Visualizzazione protetta".

    Questo è ciò che sembra quando non si è "protetto":

    image

  2. 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).
  3. Capire il vostro _spUserId di SharePoint attenendosi alla seguente procedura pazzo, credere o non:
    1. Accedi al tuo ambiente SharePoint.
    2. Nel campo indirizzo del browser web, tipo: "javascript:avviso(_spUserId").
    3. Registrare il risultato (è "13" nel mio caso).

      image

  4. Aggiungere il seguente codice javascript per il tuo CEWP in visualizzazione codice:

    <tipo dello script ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </script di>
    
    <tipo di script ="text/javascript">
      $(funzione() {
    
        avviso(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * = protetto % 20View]');
    
        Se ((theSecuredView.length > 0) && (_spUserId = = 13))
          $(' iframe[FilterLink * = protetto % 20View]').padre().padre().padre().html("<TR bgcolor = colore rosso><TD>Senza vista per voi!</TD></TR>");
      });
    
    </script di>
    

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:

image

Clicco il tasto OK e i dati viene sostituiti con un grande messaggio rosso:

image

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>

Iscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Lasciare una risposta

L'indirizzo email non verrà pubblicato. i campi richiesti sono contrassegnati *