衆所周知,WSS3.0是一個基於角色的用戶權限系統,我們可以管理網站的權限、列表的權限、文件夾(列表和文檔庫)的權限,還有條目(List Item級別)的權限,WSS3.0還提供了權限的繼承,然而,有的時候我們希望在某些功能上能夠有獨立的權限,並且實現動態的去控制一個User或者一個Group對站點內容的訪問,今天筆者做的這個Demo記錄了在SharePoint開發中,如何通過Coding的方式去實現權限級別的定義以及權限的分配.
涉及內容:
1. 特權提升,以管理員的權限運行代碼
2.上載文檔至SharePoint網站
3. 給某個用戶指定列表項的訪問權限
下面所做的事情都是在前面幾篇的基礎之上進行改動,用Microsoft SharePoint Designer打開Docs子站點,新建一個頁面,取名upload.aspx,並繼承default.master母板頁
使用Microsoft SharePoint Designer工具在文檔中心子站點的deafult.aspx頁面上添加一個名爲”上載文檔”鏈接,該鏈接指向上面建好的upload.aspx,最終頁面效果如下圖顯示
打開Visual Studio 2005,新建一個ASP.NET Web Application,名稱爲UploadFile;刪除Default.aspx頁面,我們不需要;往Application上添加一個User Control,命名爲FileUpload.ascx.在編碼之前,我做了這樣一件事情,編輯生成後的事件命令行,這樣做的目的是每當我們生成項目時可以自動的幫我們將想要的程序集以及用戶控件文件拷貝到SharePoint虛擬路徑下,省去手動拷貝這一過程,具體操作請參閱前面幾篇的內容.
用戶控件的界面如下圖所示,兩個DropDownList的ID分別爲ddlListName和ddlFolderName,上載按鈕的ID爲btnUpload
FileUpload.ascx.cs代碼如下,指定將文檔上傳至文檔中心站點的”我的文檔”列表下,並給用戶”yopeng”賦予對該文檔只讀權限,記得引入命名空間Microsoft.SharePoint和System.IO
生成應用程序,打開文檔中心網站,單擊”上載文檔”鏈接,跳轉到upload.aspx頁面,依次”網站操作”->”編輯網頁”,選擇”添加Web部件”,找到quickPart,選中並點擊”添加”按鈕,修改該共享Web部件,從User Control List中選擇生成的FileUpload用戶控件,效果如下,退出編輯模式
現在驗證下結果,上傳一個文檔到產品目錄下
等待頁面刷新,提示上傳成功
回到文檔中心首頁,查看產品目錄多了剛纔上傳的文檔
到產品目錄中查看的權限變化,使用yopeng用戶登錄,看到對於該條目,帳戶yopeng只有”查看屬性”的權限,這是因爲在代碼中我指定了帳戶yopeng只能有查看該條目的權限
我們用管理員登錄,看下該條目的權限是否有變化
當我們用管理員帳戶登錄時,可以看到對條目是有很多權限的,由此證明,設置yopeng帳戶對該條目查看的權限是有達到預期的效果的,您不妨自己動手試試.