Sigurimi List / Dokumenti Views SharePoint Library Seems (lloj nga) E mundur me jQuery

Kjo është një tjetër post në tim në vazhdim seri e se si të përdorin jQuery me SharePoint.
Nëse doni të mësoni më shumë në lidhje me jQuery, I highly recommend: jQuery në Veprim nga Bear Bibeault dhe Yehuda Katz.

Një nga gjërat e para që kam menduar, dikur kam filluar të luajnë rreth me jQuery, was whether we could use it to secure a SharePoint view. The answer is “no” (ose të paktën, Unë nuk jam duke pretenduar se kjo është e mundur). Megjithatë, 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: Quick dhe Easy: Krijo Own Sandbox juaj jQuery për SharePoint.

Për të "siguruar" një pamje të, ndiqni këto hapa:

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

    Kjo është ajo që duket si kur ajo nuk është "siguruar":

    image

  2. Shto një editor përmbajtje pjese web faqen pikëpamjes së përdorur hile përshkruar në nenin sandbox (i.e. shtoni "pageview = Shared&ToolPaneView = 2 "tek lidhja).
  3. Figure out your SharePoint _spUserId by following these crazy steps, besoni apo jo:
    1. Hyni në mjedisin tuaj SharePoint.
    2. Në fushën e web browser i adresave, lloj: "Javascript:vigjilent(_spUserId ").
    3. Regjistro rezultatin (kjo është "13" në rastin tim).

      image

  4. Shto javascript mëposhtme për CEWP tuaj në pikëpamje të kodit:

    <dorëshkrim
        "text/javascript"
        src ="../../jQuery%20Library/jquery-1.3.2.min.js">
    </dorëshkrim>
    
    <Lloji script ="text/javascript">
      $(funksion() {
    
        vigjilent(_spUserId);
    
        var theSecuredView = $('Iframe[FilterLink * = 20View Secured%]');
    
        nëse ((theSecuredView.length > 0) && (_spUserId == 13))
          $('Iframe[FilterLink * = 20View Secured%]').prind().prind().prind().html("<tr bgcolor = kuqe><td>Nuk ka pikëpamje për ju!</td></tr>");
      });
    
    </dorëshkrim>
    

Unë e kam përfshirë që vigjilent(_spUserId) linjë në atje për të demonstruar se si kjo nuk është me të vërtetë një "sigurimin" një pamje të, but simply making it more difficult to see. More on that in a moment.

Në parim, jQuery is looking for an iFrame on the page who has an attribute that contains “Secured View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, ne ecim deri DOM për një <TR> etiketë (që unë i realizuar artistikisht nga shikimin burimin dhe gjurmimin atë) dhe pastaj duke e zëvendësuar atë etiketë TR me mesazhin tim. Unë me të vërtetë nuk e di se si kjo është e fuqishme (Unë jam shumë i dyshimtë, në të vërtetë), but it worked in my sandbox. If I find a better way, Unë do të blog në lidhje me atë. Ky është rezultat:

image

Klikoj butonin OK dhe të dhënave është zëvendësuar me një mesazh i madh i kuq:

image

Si ju mund të thoni, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, Unë prishësh përmbajtjen e saj me pamje "No time për ju!"Mesazhi.

Përkundër faktit se ajo nuk është me të vërtetë një "siguruar" Pikëpamja, kjo është potencialisht e dobishme dhe me disa punë zgjuar, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, vetëm pasi ajo merr të dhënat, it wipes it out. If the client is getting the data, një përdorues i zgjuar mund të parandalojë jQuery nga kandidimi në të gjitha dhe të shohim atë që ai / ajo dëshiron të shohë.

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, por unë shoh disa gjëra të mira shkruar mbi këtë temë, kështu që unë jam optimist se ka një përgjigje e mirë për këtë problem.

Lista e pikëpamjeve të vetë duhet të shkurtohet, nëse është e mundur. I haven’t tried to figure that out. I assume it’s possible, por nuk ka të vërtetë të zgjidhë çështjen fundamentale të sigurisë për shkak se dikush ende mund të shtypni thjesht URL e parë që ata duan (në qoftë se ata e dinin atë). Megjithatë, 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, ata ndoshta nuk do të përpiqen të përdorin atë. Nganjëherë, kjo është mjaft e mirë.

Me fat, Unë do të ketë më shumë për të shkruar mbi këtë temë me kalimin e kohës.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Lini një Përgjigju

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar *