Sikre SharePoint-listen/dokumentbiblioteksvisning synes (slags) Mulig med jQuery

Dette er en annen post i min pågående serien om hvordan du bruker jQuery med SharePoint.
Hvis du vil lære mer om jQuery, Jeg anbefaler: jQuery i aksjon Bjørn Bibeault og Yehuda Katz.

En av de første tingene jeg trodde, Når jeg begynte å spille med jQuery, var om vi kunne bruke den til å sikre en SharePoint-visning. Svaret er "nei" (eller i det minste, Jeg er ikke hevde at det er mulig). Men, Det er sikkert mulig å gjøre det vanskelig for folk å se en bestemt visning.

Jeg startet med min sandbox miljøet når arbeider på denne. Jeg skrev om miljøet her: Rask og enkel: Opprette din egen jQuery Sandbox for SharePoint.

Å "sikre" en visning, Bruk denne fremgangsmåten:

  1. Opprette en visning du vil sikre. Jeg gjorde det, og kalte det "Sikret View".

    Dette er hvordan det ser ut når den ikke er "sikret":

    image

  2. Legge til en webdel for innholdsredigering i visningen side ved hjelp av kunsten beskrevet i sandbox artikkel (dvs.. legge til "sidevisning = delt&ToolPaneView = 2" til URL).
  3. Regne ut din SharePoint-_spUserId ved følgende fremgangsmåte gal, tro eller ikke:
    1. Logg i SharePoint-miljøet.
    2. I nettleseren adressefelt, type: "javascript:varsel(_spUserId").
    3. Registrere resultatet (Det er "13" i mitt tilfelle).

      image

  4. Legge til følgende javascript i din CEWP i kodevisning:

    <script type ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </skriptet>
    
    <script type ="text/javascript">
      $(funksjonen() {
    
        varsel(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * = sikret % 20View]');
    
        Hvis ((theSecuredView.length > 0) && (_spUserId == 13))
          $(' iframe[FilterLink * = sikret % 20View]').overordnede().overordnede().overordnede().HTML("<St bgcolor = rød><TD>Ingen visning for deg!</TD></tr>");
      });
    
    </skriptet>
    

Jeg har tatt som(_spUserId) linjen i det å demonstrere hvordan dette er ikke egentlig en "sikring" en visning, men bare gjør det vanskeligere å se. Mer om det i et øyeblikk.

I utgangspunktet, jQuery er på utkikk etter en iFrame på siden som har attributtet som inneholder "Sikret % 20View" i verdien. Når den finner det, vi se om gjeldende bruker er "13". Hvis det er, Vi går opp DOM til en <TR> Tag (som jeg har funnet ut, ved å vise kilde og sporing det) og deretter erstatte TR koden med min melding. Jeg vet ikke hvordan robust dette er (Jeg er veldig mistenksom, faktisk), men det virket i sandbox min. Hvis jeg finner en bedre måte, Jeg skal blogg om det.. Dette er resultatet:

image

Jeg klikker på knappen OK og dataene er erstattet med en stor rød melding:

image

Som du kan fortelle, måten jeg implementere "sikkerhet" løsningen er å tillate webdelen for å gjøre seg selv. Når den er ferdig, Jeg overskrive innholdet med min "ingen mening for deg!"melding.

Til tross for det faktum at det ikke er egentlig en "sikret '" visning, Det er potensielt nyttig og med noen smart arbeid, Det kan til slutt være sikret på en mer formell måte. Det grunnleggende problemet er at klienten blir alle data og deretter, bare når det blir dataene, det tørker den ut. Hvis klienten får dataene, en smart bruker kan hindre jQuery i å kjøre i det hele tatt og se hva han ønsker å se.

Det er andre ulemper. Denne "sikkerhet" er basert på en _spUserId. Vi ønsker å virkelig sikker basert på modellen for sikkerhet på full SharePoint, eller i det minste av brukernavn. Det blir stadig vanskeligere, men jeg ser noen gode ting som er skrevet på dette emnet, så jeg er håpefull det er et godt svar på det problemet.

Listen over visninger selv skal kuttes, Hvis mulig. Jeg har ikke prøvd å finne ut. Jeg antar det er mulig, men ikke virkelig oppklare grunnleggende sikkerhetsspørsmål fordi noen kan fortsatt bare skrive inn URL-Adressen til visningen som de ønsker (Hvis de visste det). Men, trimming fornuftig. Det er en god brukervennlighet funksjon og det hjelper for å obfuscate ting. Hvis sluttbrukeren ikke vet at hendelsen visningen finnes, de vil ikke sannsynligvis prøve å bruke den. Noen ganger, Det er god nok.

Med hell, Jeg vil ha mer å skrive om dette temaet over tid.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Technorati Merkelapper: ,,

legg igjen et svar

e-postadressen din vil ikke offentliggjøres. Obligatoriske felt er merket *