Osiguranje SharePoint popisu / biblioteci dokumenata Views Činiti (vrsta) Moguće uz jQuery

Ovo je još jedan post na mom blogu u tijeku seriju o tome kako koristiti jQuery sa SharePoint.
Ako želite saznati više o jQuery, JA visoko preporučiti: jQuery u akciji od strane medvjeda i Bibeault Yehuda Katz.

Jedna od prvih stvari koje sam mislio, jednom kada sam počeo igrati oko s jQuery, was whether we could use it to secure a SharePoint view. The answer is “no” (ili barem, Nisam tvrdeći da je moguće). Međutim, it is certainly possible to make it difficult for people to see a particular view.

I started with my sandbox environment when working on this. I wrote about that environment here: Brzo i jednostavno: Stvoriti Tvoj Posjedovati jQuery Pješčanik za SharePoint.

Za "osigurati" pogled, slijedite ove korake:

  1. Create a view you want to secure. I did that and called it “Secured View”.

    To je ono što izgleda kao kada to nije "osiguran":

    image

  2. Dodaj web dio urednik sadržaja na prikaz na stranici pomoću trik je opisano u članku sandbox (i.e. dodati "prikaza stranice = podijelio&ToolPaneView = 2 "na URL).
  3. Figure out your SharePoint _spUserId by following these crazy steps, vjerovali ili ne:
    1. Prijavite se na svoj SharePoint okoliš.
    2. U web pregledniku adresnom polju, tip: "Javascript:oprezan(_spUserId ").
    3. Snimite rezultat (to je "13", u mom slučaju).

      image

  4. Dodajte sljedeće javascript na CEWP u prikazu koda:

    <skripta
        "Text / javascript"
        src =".. / .. / Jquery% 20Library/jquery-1.3.2.min.js">
    </skripta>
    
    <skripta type ="Text / javascript">
      $(funkcija() {
    
        oprezan(_spUserId);
    
        bio theSecuredView = $('Iframe[FilterLink * = Osiguran% 20View]');
    
        ako ((theSecuredView.length > 0) && (_spUserId == 13))
          $('Iframe[FilterLink * = Osiguran% 20View]').roditelj().roditelj().roditelj().html("<tr bgcolor = crvena><td>Nema pogled za vas!</td></tr>");
      });
    
    </skripta>
    

Uključio sam da upozorenja(_spUserId) linija tamo pokazati kako to zapravo i nije "osiguranje" pogled, but simply making it more difficult to see. More on that in a moment.

U osnovi, jQuery is looking for an iFrame on the page who has an attribute that contains “Secured%20View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, hodamo do DOM do <TR> dan (što sam shvatio pregledom izvora i praćenje) a zatim zamjene taj TR oznaku s moje poruke. Ja stvarno ne znam koliko je snažna je to (Vrlo sam sumnjičav, zapravo), but it worked in my sandbox. If I find a better way, Ja ću blog o tome. To je rezultat:

image

Ja kliknite gumb OK i podaci zamijenjen s velikom crvenom poruke:

image

Kao što možete reći, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, Ja prepisati svoj sadržaj s mojim "No more za vas!"Poruka.

Unatoč činjenici da to nije stvarno "osiguran" "Pogled, to je potencijalno korisna i sa nekim pametnim radom, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, tek nakon što dobije podatke, it wipes it out. If the client is getting the data, pametan korisnik može spriječiti jQuery iz trčanje na sve i vidjeti što on / ona želi vidjeti.

There are other drawbacks. This “security” approach is based off a _spUserId. We’d want to really secure based on the full SharePoint security model, or at least by user name. That becomes progressively harder, ali vidim neke dobre stvari pisano o ovoj temi, pa sam se nada da postoji dobar odgovor na taj problem.

Popis pregleda i sami trebali biti obrubljen, ako je moguće. I haven’t tried to figure that out. I assume it’s possible, ali zapravo ne riješi temeljno pitanje sigurnosti, jer netko ipak mogao samo upišite URL pogledom žele (ako su ga znali). Međutim, trimming makes sense. It’s a good usability feature and it helps to obfuscate things. If an end user doesn’t know that the view event exists, they probably won’t try to use it. Ponekad, da je dovoljno dobar.

Uz malo sreće, Ja ću imati više pisati o ovoj temi tijekom vremena.

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Dopust jedan Odgovor

Vaša email adresa neće biti objavljena. obavezna polja su označena *