Bu, mənim bir yazı deyil seriyası davam istifadə etmək üçün jQuery SharePoint ilə.
Siz jQuery haqqında daha çox öyrənmək istəyirsinizsə,, Mən tövsiyə: Fəaliyyət ilə jQuery Bear Bibeault və Yehuda Katz ilə.
Fikirləşdim ilk şey biri, bir dəfə mən jQuery ilə ətrafında oynamağa başladı, was whether we could use it to secure a SharePoint view. The answer is “no” (və ya ən azı, Mən bunu mümkün iddia deyiləm). Lakin, 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: Tez və asan: SharePoint üçün öz jQuery Sandbox yarat.
Baxımından "təmin etmək", aşağıdakı adımları baxın:
- Create a view you want to secure. I did that and called it “Secured View”.
Bu "təmin" deyil zaman kimi görünür nə:
- Ki, Sandbox məqalədə təsvir oyun istifadə edərək görünüşü page content redaktoru Web Part əlavə et (i.e. "sahifada görünüşü = Paylaşılan əlavə et&URL-yə ToolPaneView = 2 ").
- Figure out your SharePoint _spUserId by following these crazy steps, iman və ya deyil:
- Sizin SharePoint mühit daxil ol.
- Web brauzer ünvan sahədə, növü: "Javascript:zirək(_spUserId ").
- Nəticədə qeyd (mənim halda "13" var).
- Kodu görünümünde CEWP üçün aşağıdakı javascript əlavə et:
<ssenari
"text/javascript"
src ="../../jQuery%20Library/jquery-1.3.2.min.js">
</ssenari>
<script type ="text/javascript">
$(funksiyası() {
zirək(_spUserId);
oldu theSecuredView = $("Iframe[FilterLink * = Təminatlı% 20View]');
əgər ((theSecuredView.length > 0) && (_spUserId == 13))
$("Iframe[FilterLink * = Təminatlı% 20View]').valideyn().valideyn().valideyn().html("<tr bgcolor = red><TD>Sizə heç bir görünüşü!</TD></tr>");
});
</ssenari>
|
Mən daxil olduğunuz alert(_spUserId) Bu, həqiqətən bir baxış "təmin" deyil necə nümayiş etdirmək üçün orada xətt, but simply making it more difficult to see. More on that in a moment.
Əsasən, 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, biz üçün DOM qədər gəzmək <TR> tag (I mənbə görüntülerken və bu axtarış tərəfindən həyata fiqurlu) və sonra mənim mesajı ilə TR tag əvəz. Mən, həqiqətən, bu necə sağlam bilmirəm (Mən çox şübhəli Ben, faktiki olaraq), but it worked in my sandbox. If I find a better way, Mən bu barədə blog lazımdır. Bu nəticə:
Mən OK düyməsini basın və məlumat böyük qırmızı mesajı ilə əvəz olunur:
Siz deyə bilərsiniz kimi,, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, Mən sizə mənim "No baxımından onun məzmunu yazmaq!"Mesajı.
Bu, həqiqətən bir "təhlükəsiz" görünüşü deyil ki, baxmayaraq, O potensial faydalı və bəzi ağıllı iş ilə var, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, bu məlumatların əldə sonra, it wipes it out. If the client is getting the data, bir ağıllı istifadəçi bütün çalışan olan jQuery qarşısını almaq və o / o görmək istəyir nə edə bilərsiniz.
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, amma bu mövzuda yazılı yaxşı keçirmək, mən ki, problem yaxşı bir cavab var ümidliyəm.
Özləri işlənmiş edilməlidir fikir siyahısı, if possible. I haven’t tried to figure that out. I assume it’s possible, kimsə hələ yalnız istədikləri baxımından URL yazın bilər, çünki, lakin həqiqətən fundamental təhlükəsizlik problemi həll etmir (onlar bilirdi, əgər). Lakin, 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. Bəzən, ki, kifayət qədər yaxşı.
Luck ilə, Mən vaxt keçdikcə bu mövzuda yazmaq üçün daha çox lazımdır.
</son>
Blog abunə.
Da Twitter məni izləyin http://www.twitter.com/pagalvin