ეს არის კიდევ ერთი პოსტი ჩემს მიმდინარე სერია , თუ როგორ გამოიყენოთ jQuery ერთად SharePoint.
თუ გსურთ მეტი jQuery, მე მაღალ რეკომენდაციას: jQuery მოქმედებაში by დათვი Bibeault და Yehuda Katz.
ერთი პირველი რამ მეგონა,, ერთხელ დავიწყე ითამაშოს გარშემო 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 Sandbox for SharePoint.
"დაკანონება" ხედი, შეასრულეთ:
- Create a view you want to secure. I did that and called it “Secured View”.
ეს არის ის, რაც ჰგავს, როდესაც ის არ არის "უზრუნველყოფილი":
- დამატება შინაარსის რედაქტორი ვებ ნაწილი ხედი გვერდი გამოყენებით შეასრულა აღწერილი სავარჯიშოში მუხლის (i.e. დამატება "PageView = გაერთიანებული&ToolPaneView = 2 "URL).
- Figure out your SharePoint _spUserId by following these crazy steps, გვჯერა თუ არა:
- შესვლა თქვენი SharePoint გარემო.
- In ბრაუზერში მისამართი სფეროში, ტიპის: "Javascript:გაფრთხილება(_spUserId ").
- ჩაწერას შედეგი (ეს არის "13" ჩემს შემთხვევაში).
- სანიშნეს შემდეგ javascript თქვენს CEWP კოდის ხედვა:
<დამწერლობის
"text/javascript"
src ="../../jQuery%20Library/jquery-1.3.2.min.js">
</დამწერლობის>
<დამწერლობის ივერიის"text/javascript">
$(ფუნქცია() {
გაფრთხილება(_spUserId);
იყო theSecuredView = $('Iframe[FilterLink * = უზრუნველყოფილი% 20View]');
თუ ((theSecuredView.length > 0) && (_spUserId == 13))
$('Iframe[FilterLink * = უზრუნველყოფილი% 20View]').მშობელს().მშობელს().მშობელს().html("<tr bgcolor = red><td>არ შეხედულება თქვენთვის!</td></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%20View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, ჩვენ ფეხით up DOM to <TR> tag (რომელიც მე figured მიერ ათვალიერებენ წყარო და მოკვლევისა ეს) და შემდეგ შეცვალა, რომ TR tag, რომ ჩემს გაგზავნა. მე ნამდვილად არ ვიცი როგორ მტკიცე ეს (მე ძალიან საეჭვო, სინამდვილეში), but it worked in my sandbox. If I find a better way, მე დღიური შესახებ. ეს არის შედეგი:
I დააჭირეთ OK ღილაკს და მონაცემები ცვლის დიდი წითელი გაგზავნა:
როგორც თქვენ ვუთხრა, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, I თავზე გადაწერის მისი შინაარსის with my "No view for you!"Message.
მიუხედავად იმისა, რომ ფაქტს, რომ მას არის ის, არ არის ნამდვილად a "უზრუნველყოფილი, '" view, it არის ის, პოტენციურად სასარგებლო და with ზოგიერთი clever work, 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, clever მომხმარებლის პროფაილი არ შეუძლია ხელი შეუშალოს jQuery from გაშვებულია at all და ვნახოთ, რა მან / she სურს,, რომ ნახოთ,.
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 of აზრით მათ სურთ (თუ მათ იცოდნენ, რომ ეს). თუმცა, 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. ზოგჯერ, ეს არის ის, საკმარისი.
ერთად წარმატებას, მე უფრო მეტი დაწერა ამ საკითხზე დროთა.
</ბოლო>
გამოწერა ჩემი დღიური.
გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin