Zabezpieczanie dokument listy programu SharePoint biblioteki widoki wydaje się (sortowane) Możliwe z jQuery

Jest to stanowisko innego w Moje Seria jak użyć jQuery z programu SharePoint.
Jeśli chcesz dowiedzieć się więcej o jQuery, Polecam: jQuery w działaniu Bear Bibeault i Yehuda Katz.

Jedną z pierwszych rzeczy, które ja pomyślałem, Kiedy ja rozpocząłem się bawić jQuery, był, czy możemy użyć go do bezpiecznego widoku programu SharePoint. Odpowiedź brzmi "nie" (lub co najmniej, Nie twierdzę, że to możliwe). Jednakże, to z pewnością możliwe do sprawiają, że trudno dla ludzi, aby zobaczyć określonego widoku.

Zacząłem z mojej piaskownicy środowiska, podczas pracy na ten temat. Pisałem o tym środowisku tutaj: Szybkie i łatwe: Utwórz własny jQuery piaskownicy dla programu SharePoint.

Do "bezpiecznego" widok, wykonaj następujące kroki:

  1. Utwórz widok, który chcesz zabezpieczyć. Zrobiłem i nazwał go "Zabezpieczone w widoku".

    To jest, jak to wygląda gdy jest nie "zabezpieczone":

    image

  2. Dodaj składnik web part Edytor zawartości strony w widoku za pomocą sztuczki opisane w artykule z piaskownicy (tj.. dodać "odsłony = Shared&ToolPaneView = 2 "do adresu URL).
  3. Obliczaæ na zewn¹trz twój _spUserId programu SharePoint przez następujące kroki szalony, Wierzcie lub nie:
    1. Zaloguj się do swojego środowiska SharePoint.
    2. W polu adresu przeglądarki internetowej, Typ: "javascript:alarm(_spUserId").
    3. Zapis wyniku (to jest "13" w moim przypadku).

      image

  4. Dodać ten kolejne javascript do swojej CEWP w widoku Kod:

    <skrypt typ ="text/javascript"
        src ="../../jQuery Library/jQuery-1.3.2.min.js">
    </skrypt>
    
    <skrypt typ ="text/javascript">
      $(Funkcja() {
    
        alarm(_spUserId);
    
        var theSecuredView = $("iframe[FilterLink * = zabezpieczone % 20View]');
    
        Jeśli ((theSecuredView.length > 0) && (_spUserId == 13))
          $("iframe[FilterLink * = zabezpieczone % 20View]').nadrzędny().nadrzędny().nadrzędny().HTML("<TR bgcolor = czerwony><TD>Brak widoku dla Ciebie!</TD></TR>");
      });
    
    </skrypt>
    

Podaję tego wpisu(_spUserId) linii tam, aby wykazać, jak to nie jest naprawdę "zabezpieczenia" widok, ale po prostu co czyni go bardziej trudne zobaczyć. Więcej o tym za chwilę.

Zasadniczo, jQuery szuka iFrame na stronie, która ma atrybut zawierający "20View % zabezpieczony" w jego wartość. Gdy odnajduje ją, Sprawdzamy, czy bieżący użytkownik jest "13". Jeśli to jest, idziemy się DOM do <TR> Tag (co ja wyobra¿a³ na zewn¹trz przez wyświetlanie źródła i śledzenie go) a następnie zastąpienie znacznik TR z mojej wiadomości. Naprawdę nie wiem, jak solidny jest (Jestem bardzo podejrzane, W zasadzie), oprócz ono pracowa³ w mój skrzynka z piaskiem. Jeśli mogę znaleźć lepszy sposób, Będę o tym blogu. Jest to wynik:

image

Kliknij przycisk OK i danych jest zastępowany wiadomość czerwony duży:

image

Jak można powiedzieć, sposób mam wdrożenie tego rozwiązania "bezpieczeństwa" jest umożliwienie składnika web part do rendera sam. Po zakończeniu, Zastąpić zawartość mojego bez widoku dla Ciebie.!"wiadomości.

Pomimo faktu, że to nie jest naprawdę "zabezpieczone" "widok, to jest potencjalnie użytecznym i jakiś sprytny pracy, ostatecznie może być zabezpieczany w sensie bardziej formalne. Zasadnicza kwestia jest to, że klient jest uzyskanie wszystkich danych i następnie, tylko po to pobiera dane, to ociera się. Jeśli klient jest uzyskanie danych, sprytny użytkownik może uniemożliwić uruchomienie w ogóle jQuery i zobaczyć, co on/ona chce zobaczyć.

Istnieją inne wady. "Bezpieczeństwa" podejście to opiera się _spUserId. My byłby potrzeba do naprawdę bezpieczne oparty na modelu zabezpieczeń pełnego programu SharePoint, lub co najmniej przez nazwę użytkownika. Która staje się coraz trudniejsze, ale widzę, że kilka dobrych rzeczy napisane na ten temat, więc mam nadzieję, że ma dobrej odpowiedzi na ten problem.

Lista widoków, same powinny być okrojone, Jeśli to możliwe. Nie próbowałem wobec obliczaæ ów na zewn¹trz. Zakładam, że to możliwe, ale tak naprawdę nie rozwiązuje problemu podstawowych zabezpieczeń bo ktoś może jeszcze po prostu wpisz adres URL widoku, które chcą (gdyby wiedzieli, że to). Jednakże, przycinanie sens. To jest funkcją użyteczności dobra i przyczynia się do zaciemniać rzeczy. Jeśli użytkownik końcowy nie wie że istnieje zdarzenie widoku, oni chyba nie będzie starał się go używać. Czasami, jest to wystarczająco dobre.

Przy odrobinie szczęścia, Będę miał więcej napisać na ten temat w czasie.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Technorati znaczniki: ,,

Znaczniki del.icio.us: ,,

Odpowiedz

Twoj adres e-mail nie bedzie opublikowany. wymagane pola są zaznaczone *