Sécurisation des vues de bibliothèque de documents SharePoint liste semble (en quelque sorte) Possible avec jQuery

Il s'agit d'un autre poste dans mon série en cours Comment utiliser jQuery avec SharePoint.
Si vous souhaitez en savoir plus sur jQuery, Je recommande fortement: jQuery in Action par ours Bibeault et Yehuda Katz.

Une des premières choses que je pensais, une fois que j'ai commencé à jouer avec jQuery, était de savoir si nous pourrions utiliser pour garantir un affichage SharePoint. La réponse est « non » (ou au moins, Je ne suis pas réclamer que c'est possible). Cependant, Il est certainement possible de rendre difficile pour les gens de voir une vue particulière.

J'ai commencé avec mon environnement sandbox lorsque vous travaillez sur ce. J'ai écrit sur cet environnement ici: Facile et rapide: Créer votre propre jQuery Sandbox pour SharePoint.

Pour « obtenir » un point de vue, Suivez ces étapes:

  1. Créer une vue que vous souhaitez sécuriser. J'ai fait cela et l'a appelé « Vue sécurisé ».

    C'est à quoi il ressemble quand ce n'est pas « garanti »:

    image

  2. Ajouter un composant WebPart éditeur de contenu à la page de la vue en utilisant l'astuce décrite dans l'article de la sablière (i.e. ajouter « PageView = Shared&ToolPaneView = 2 » à l'URL).
  3. Comprendre votre _spUserId de SharePoint en suivant ces étapes fous, croire ou pas:
    1. Ouvrez une session dans votre environnement SharePoint.
    2. Dans le champ d'adresse du navigateur web, type: « javascript:alerte(_spUserId »).
    3. Noter le résultat (C'est le « 13 » dans mon cas).

      image

  4. Ajoutez le code javascript suivant pour votre CEWP en mode code:

    <script type ="text/javascript"
        SRC =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </script>
    
    <script type ="text/javascript">
      $(fonction() {
    
        alerte(_spUserId);
    
        var theSecuredView = $(« iframe[FilterLink * = 20View % garanti]');
    
        Si ((theSecuredView.length > 0) && (_spUserId == 13))
          $(« iframe[FilterLink * = 20View % garanti]').parent().parent().parent().html("<TR bgcolor = rouge><TD>Pas de vue pour vous!</TD></TR>");
      });
    
    </script>
    

J'ai inclus cette alerte(_spUserId) ligne là-dedans pour démontrer comment ce n'est pas vraiment une « sécurisation » une vue, mais simplement rend plus difficile à voir. Plus sur cela dans un instant.

Essentiellement, jQuery est à la recherche d'un iFrame sur la page qui possède un attribut qui contient « Secured % 20View » de sa valeur. Une fois qu'il la trouve, nous vérifions pour voir si l'utilisateur actuel est « 13 ». S'il est, Nous marchons vers le haut le DOM pour un <TR> Tag (qui a découvert par affichage source et traçage il) puis en remplaçant cette balise TR avec mon message. Je ne sais vraiment pas comment robuste c'est (Je suis très suspecte, En fait), mais cela a fonctionné dans mon bac à sable. Si j'ai trouver une meilleure façon, Je vais de blog à ce sujet. C'est le résultat:

image

Je clique sur le bouton OK et les données sont remplacées par un grand message rouge:

image

Comme vous pouvez le dire, la façon dont j'ai implémenter cette solution de « sécurité » est de permettre le composant WebPart restituer elle-même. Une fois terminé, J'écrase son contenu avec « sans moi pour vous!« message.

Malgré le fait qu'il n'est pas vraiment un « garanti » « avis, Il est potentiellement utile et avec un travail intelligent, Il peut éventuellement être sécurisable dans un sens plus formel. La question fondamentale est que le client obtient toutes les données, puis, seulement après qu'il obtient les données, Il anéantit. Si le client ne reçoit pas les données, un utilisateur habile peut empêcher l'exécution du tout de la jQuery et voir ce qu'il souhaite voir.

Il y a autres inconvénients. Cette approche de « sécurité » est basée sur un _spUserId. Nous souhaitons à vraiment sécurisé basé sur le modèle complet de sécurité SharePoint, ou au moins de nom d'utilisateur. Cela devient de plus en plus difficile, mais je vois des trucs bien écrit sur ce sujet, Si j'ai bon espoir, qu'il y a une bonne réponse à ce problème.

La liste des points de vue se devrait être réduite., Si possible. Je n'ai pas essayé de comprendre cela. Je suppose que c'est possible, mais n'est pas vraiment résoudre le problème de sécurité fondamentales, parce que quelqu'un pourrait encore juste tapez l'URL de la vue qu'ils veulent (s'ils savaient il). Cependant, parage logique. C'est une caractéristique de la facilité d'utilisation et il contribue à obscurcir les choses. Si un utilisateur final ne sait pas que l'évènement existe, ils ne sera pas probablement essayer de l'utiliser. Parfois, C'est assez bon.

Avec de la chance, J'aurai plus d'écrire sur ce sujet au fil du temps.

</fin>

S'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin

Laisser une réponse

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *