ایمن شیرپوینت فهرست / نمایش ها کتابخانه سند به نظر می رسد (مرتب کردن بر اساس) ممکن است با jQuery

این یکی دیگر از پست من است بر روی سری در مورد چگونگی استفاده از جی کوئری با شیرپوینت.
اگر شما می خواهید برای کسب اطلاعات بیشتر در مورد جی کوئری, من به شدت توصیه: jQuery را در عمل توسط خرس Bibeault و یهودا کتز.

یکی از اولین چیزهایی که من فکر کردم, یک بار من شروع به بازی در اطراف با jQuery, was whether we could use it to secure a SharePoint view. The answer is “no” (یا حداقل, من ادعا نمی کند این امکان وجود دارد). اما, 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: دسترسی سریع و آسان: ایجاد گودال ماسهبازی jQuery را خود را برای شیرپوینت.

به "امن" دیدگاه, این مراحل را دنبال:

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

    این همان چیزی است که به نظر می رسد مانند وقتی که آن را "امن":

    image

  2. اضافه کردن ویرایشگر محتوا بخشی از وب به صفحه نمایش با استفاده از ترفند های شرح داده شده در مقاله گودال ماسهبازی (i.e. اضافه کردن "بازدید از صفحه = به اشتراک گذاشته شده&ToolPaneView = 2 "به URL).
  3. Figure out your SharePoint _spUserId by following these crazy steps, باور کنید یا نه:
    1. ورود به محیط شیرپوینت شما.
    2. در فیلد آدرس مرورگر وب, نوع: "جاوا اسکریپت:هوشیار(_spUserId ").
    3. ثبت نتیجه (آن را "13" در مورد من).

      image

  4. اضافه کردن JavaScript در مرورگر شما های زیر به CEWP خود را در نظر کد:

    <خط
        "text/javascript"
        SRC ="../../jQuery Library/jquery-1.3.2.min.js">
    </خط>
    
    <نوع اسکریپت ="text/javascript">
      $(تابع() {
    
        هوشیار(_spUserId);
    
        ور theSecuredView = $('از iframe[FilterLink * =٪ امن 20View]');
    
        اگر ((theSecuredView.length > 0) && (_spUserId == 13))
          $('از iframe[FilterLink * =٪ امن 20View]').پدر یا مادر().پدر یا مادر().پدر یا مادر().اچ تی ام ال("<TR bgcolor = قرمز><فلش>بدون دیدگاه برای شما!</فلش></TR>");
      });
    
    </خط>
    

من را گنجانده ام که هشدار(_spUserId) خط در آن وجود دارد برای نشان دادن نحوه این است که واقعا "تامین امنیت" دیدگاه, but simply making it more difficult to see. More on that in a moment.

بطور اساسی, 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, ما راه رفتن تا DOM به <TR> برچسب (که من با دیدن منبع و ردیابی آن نمیفهمد) و سپس جایگزین آن تگ TR با پیام من. من واقعا نمی دانم چگونه قوی این است (من بسیار مشکوک هستم, در واقع), but it worked in my sandbox. If I find a better way, من در مورد آن وبلاگ. این نتیجه است:

image

من روی دکمه OK کلیک کنید و داده ها را با یک پیام بزرگ قرمز جایگزین:

image

همانطور که شما می توانید بگویید, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, مطالب خود را با من "هیچ نظر را برای شما بازنویسی کنم!"پیام.

با وجود این واقعیت است که آن را واقعا نمی "امن" دیدگاه, آن را به طور بالقوه مفید و با برخی از کارهای هوشمندانه, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, تنها پس از آن می شود که داده ها, it wipes it out. If the client is getting the data, یک کاربر باهوش می تواند jQuery را از در حال اجرا در همه پیشگیری و دیدن آنچه که او / او می خواهد برای دیدن.

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, اما من می بینم بعضی از چیزهای خوب در مورد این مطلب نوشته شده است, بنابراین من امیدوار هستم یک پاسخ خوبی برای این مشکل وجود دارد.

لیستی از نمایش های خود باید کمرنگ, در صورت امکان. I haven’t tried to figure that out. I assume it’s possible, اما واقعا نمی حل مسئله امنیتی اساسی است زیرا کسی که هنوز هم می تواند فقط URL از این دیدگاه که آنها می خواهند تایپ (اگر آنها آن را می دانستند). اما, 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. Sometimes, که به اندازه کافی خوب است.

با آرزوی موفقیت, من بیشتر برای نوشتن در مورد این مطلب در طول زمان.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

پاسخ

آدرس ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *