Beveiliging van SharePoint lijst/bibliotheek documentweergaven lijkt (soort van) Mogelijk met jQuery

Dit is een andere post in mijn aan de gang zijnde reeks over hoe te gebruiken jQuery met SharePoint.
Als u wilt meer weten over jQuery, I recommend highly: jQuery in actie door Bear Bibeault en Yehuda Katz.

Een van de eerste dingen die ik dacht, Zodra ik begon te spelen rond met jQuery, was of we het gebruiken kunnen om de weergave van een SharePoint veilig te stellen. Het antwoord is "nee" (of op zijn minst, Ik beweer niet dat het mogelijk is). Echter, het is zeker mogelijk te maken het moeilijk voor mensen om te zien een bepaalde weergave.

Ik ben begonnen met mijn sandbox-omgeving bij het werken op dit. Ik schreef over dat milieu hier: Snel en eenvoudig: Maak uw eigen jQuery Sandbox voor SharePoint.

Om "veilige" een weergave, Volg de volgende stappen:

  1. Maak een weergave die u wilt beveiligen. Ik deed dat en noemde het "Beveiligd View".

    Dit is hoe het eruitziet wanneer het niet "beveiligd":

    image

  2. Een webonderdeel Inhoudseditor toevoegen aan van de weergave pagina met behulp van de truc in het sandbox-artikel beschreven (dwz. toevoegen "PageView = gedeelde&ToolPaneView = 2 "naar de URL).
  3. Erachter te komen uw SharePoint _spUserId door gek volgt, geloof of niet:
    1. Log in op uw SharePoint-omgeving.
    2. In het adresveld van de webbrowser, type: "javascript:waarschuwing(_spUserId").
    3. Record het resultaat (het is "13" in mijn geval).

      image

  4. De volgende javascript toevoegen aan uw CEWP in de codeweergave:

    <script type ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </script>
    
    <script type ="text/javascript">
      $(functie() {
    
        waarschuwing(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * = beveiligde % 20View]');
    
        Als ((theSecuredView.length > 0) && (_spUserId == 13))
          $(' iframe[FilterLink * = beveiligde % 20View]').bovenliggende().bovenliggende().bovenliggende().HTML("<TR bgcolor = rood><TD>Geen weergave voor u!</TD></tr>");
      });
    
    </script>
    

Ik heb opgenomen waarmee attent(_spUserId) lijningang daar om aan te tonen hoe dit is niet echt een "beveiligen" een weergave, maar gewoon waardoor het moeilijker om te zien. Meer op dat in een moment.

In principe, jQuery is op zoek naar een iFrame op de pagina die een kenmerk dat "Beveiligde % 20View" in haar waarde bevat heeft. Zodra het het vindt, We controleren om te zien of de huidige gebruiker is "13". Als het is, We lopen het DOM aan een <TR> Label (die ik bedacht door bron weergeven en het traceren) en vervolgens vervangen die tag TR met mijn bericht. Ik weet echt niet hoe robuust dit is (Ik ben zeer verdacht, Eigenlijk), maar het werkte in mijn zandbak. Als ik een betere manier te vinden, Zal ik blog over het. Dit is het resultaat:

image

Ik klik op de knop OK en de gegevens is vervangen door een grote rode bericht:

image

Zoals u kunt zien, de manier waarop ik heb implementeren deze 'Beveiliging' oplossing is om het webonderdeel te maken zelf. Nadat het is voltooid, Ik overschrijven inhoudelijk met mijn "geen weergave voor u!"bericht.

Ondanks het feit dat het is niet echt een "beveiligde '" weergave, is het potentieel nuttig en met sommige slimme werk, het uiteindelijk mogelijk beveiligbare in een meer formele zin. Het fundamentele probleem is dat de cliƫnt alle gegevens krijgt en vervolgens, pas nadat het de gegevens ophaalt, het tenietdoet het. Als de client is het verkrijgen van de gegevens, een slimme gebruiker kan voorkomen dat de jQuery helemaal wordt uitgevoerd en zien wat hij/zij wil om te zien.

Er zijn andere nadelen. Deze "beveiliging"-aanpak is gebaseerd uit een _spUserId. Wij willen echt veilig op basis van de volledige SharePoint-beveiligingsmodel, of op zijn minst door gebruikersnaam. Dat wordt steeds moeilijker, maar ik zie een aantal goede dingen over dit onderwerp geschreven, dus ik ben hoopvol is er een goed antwoord op dat probleem.

De lijst met weergaven zelf moet worden afgesneden., indien mogelijk. Ik heb niet geprobeerd om erachter te komen dat. Ik neem aan dat het mogelijk is, maar echt het fundamentele veiligheidsprobleem niet oplost, omdat iemand kon nog net Typ de URL van de weergave die ze willen (Als zij wisten het dat). Echter, trimmen zinvol. Het is een goede usability functie en het helpt om te verduisteren dingen. Als een eindgebruiker niet weet dat de weergave-gebeurtenis bestaat, ze zal niet waarschijnlijk proberen om het te gebruiken. Soms, dat is goed genoeg.

Met geluk, Ik heb meer te schrijven over dit onderwerp na verloop van tijd.

</einde>

Abonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin

Laat een antwoord achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *