Ini merupakan satu lagi jawatan dalam saya siri berterusan bagaimana untuk menggunakan jQuery dengan SharePoint.
Jika anda ingin mengetahui lebih lanjut mengenai jQuery, Saya sangat mengesyorkan: jQuery dalam Tindakan oleh Bear Bibeault dan Yehuda Katz.
Salah satu perkara pertama yang saya fikir, apabila saya mula bermain-main dengan jQuery, adalah sama ada kita boleh menggunakan untuk mendapatkan pemandangan SharePoint. Jawapannya adalah "tidak" (atau sekurang-kurangnya, Saya tidak mendakwa ianya mungkin). Walau bagaimanapun, sudah tentu boleh menyukarkan orang ramai untuk menyaksikan pemandangan tertentu.
Saya bermula dengan persekitaran sandbox saya apabila bekerja mengenai perkara ini. Saya menulis tentang persekitaran tersebut di sini: Pantas dan Mudah: Buat Sandbox jQuery Sendiri untuk SharePoint.
Kepada "selamat" gambaran yang, Ikuti langkah ini:
- Mencipta satu paparan yang anda mahu untuk mendapatkan. Saya melakukan itu dan menamakannya "Lihat selamat".
Ini adalah apa yang kelihatan seperti apabila ia tidak "dijamin":
- Menambahkan bahagian web editor kandungan dalam paparan laman menggunakan helah yang diterangkan dalam artikel sandbox (Dgn kata lain. Tambah "PageView = berkongsi&ToolPaneView = 2" ke URL).
- Memikirkan _spUserId SharePoint anda dengan mengikuti langkah-langkah ini gila, percaya atau tidak:
- Tambah javascript berikut ke CEWP anda dalam paparan kod:
Saya sertakan berjaga-jaga yang(_spUserId) talian di sana untuk menunjukkan bagaimana ini bukanlah benar-benar "mendapatkan" gambaran yang, tetapi hanya menjadikannya lebih sukar untuk melihat. Lanjut mengenai bahawa dalam masa.
Pada asasnya, jQuery sedang mencari iFrame untuk pada halaman yang mempunyai atribut yang mengandungi "Bercagar % 20View" dalam nilai. Setelah ia mendapati, kami menyemak untuk melihat jika pengguna semasa "13". Jika ianya, kami berjalan sehingga DOM untuk yang <TR> Tag (yang aku tahu dengan melihat sumber dan menilik ia) dan kemudian menggantikan tag TR itu dengan mesej saya. Saya benar-benar tidak tahu bagaimana mantap inilah (Saya sangat mencurigakan, sebenarnya), tetapi ia bekerja dalam sandbox saya. Jika saya dapati cara yang lebih baik, Saya akan blog tentang hal itu. Ini adalah keputusan:
Saya klik butang OK dan data diganti dengan mesej merah besar:
Kerana anda boleh beritahu, cara saya melaksanakan penyelesaian "Keselamatan" ini adalah untuk membolehkan bahagian web untuk membuat sendiri. Selepas ia selesai, Saya menulis kandungannya dengan saya "Tiada paparan untuk anda!"mesej.
Walaupun fakta bahawa ia bukanlah benar-benar "selamat '" Paparan, Ianya mungkin berguna dan dengan beberapa kerja yang pandai, Ia akhirnya boleh menjadi securable dalam erti kata yang lebih formal. Isu asas adalah bahawa pelanggan mendapat semua data dan kemudian, hanya selepas ia mendapat data, Ia wipes. Jika pelanggan mendapat data, pengguna bijak boleh menghalang jQuery yang menjalankan semua dan melihat apa yang dia/dia mahu melihat.
Terdapat kelemahan lain. Pendekatan "Keselamatan" ini adalah berdasarkan dari _spUserId yang. Kita mahu untuk benar-benar selamat berdasarkan model Keselamatan SharePoint penuh, atau sekurang-kurangnya dengan nama pengguna. Yang menjadi lebih sukar secara beransur-ansur, tapi saya melihat beberapa bahan yang baik yang ditulis mengenai perkara ini, Jadi saya berharap ada satu jawapan yang baik untuk masalah itu.
Senarai pemandangan diri perlu dikurangkan, jika boleh. Saya belum cuba untuk memikirkan yang. Saya menganggap ianya mungkin, tetapi benar-benar tidak menyelesaikan isu keselamatan asas kerana seseorang masih hanya boleh menaip URL yang berpendapat mereka mahu (Jika mereka tahu ia). Walau bagaimanapun, mengurangkan akal. Ianya mempunyai kegunaan yang baik dan ia membantu untuk obfuscate perkara-perkara. Jika pengguna akhir tidak tahu bahawa wujud sekiranya paparan, mereka mungkin tidak akan cuba untuk menggunakannya. Kadang-kadang, Itulah sudah memadai.
Dengan nasib, Saya akan bercakap lebih banyak menulis mengenai perkara ini dari semasa ke semasa.
</akhir>
Mengikuti aku di Twitter http://www.twitter.com/pagalvin