SharePoint 服务器端对象模型操作文档库(上传/授权/查看权限)
來源于:http://www.cnblogs.com/jianyus/p/3258863.html
簡介:上傳文檔到文檔庫,并對(duì)項(xiàng)目級(jí)授權(quán),查看項(xiàng)目級(jí)權(quán)限方法
??????? //在列表根目錄下創(chuàng)建文件夾
??????? public static string CreatFolderToSPDocLib(string strFolderName, string strDocLibName)
??????? {
??????????? string FolderPath = string.Empty;
?
??????????? try
??????????? {
??????????????? using (SPSite site = new SPSite(SiteUrl))
??????????????? {
??????????????????? using (SPWeb web = site.OpenWeb())
??????????????????? {
??????????????????????? web.AllowUnsafeUpdates = true;
??????????????????????? SPListCollection lists = web.GetListsOfType(SPBaseType.DocumentLibrary);
??????????????????????? lists.IncludeRootFolder = true;
??????????????????????? SPList list = lists[strDocLibName];
??????????????????????? list.EnableFolderCreation = true;
??????????????????????? SPListItem item = list.Items.Add(list.RootFolder.ServerRelativeUrl, SPFileSystemObjectType.Folder, strFolderName);
??????????????????????? item.Update();
??????????????????????? list.Update();
??????????????????????? FolderPath = item["FileRef"].ToString();
??????????????????????? web.AllowUnsafeUpdates = false;
??????????????????? }
??????????????? }
??????????? }
??????????? catch
??????????? {
??????????? }
??????????? return FolderPath;
??????? }
?
//上傳文件到文件夾,并授權(quán)給相關(guān)用戶
??????? public static bool UpLoadFileToFolder(byte[] FileStream, string FileName, string FolderPath, string allLoginName)
??????? {
??????????? try
??????????? {
??????????????? using (SPSite site = new SPSite(SiteUrl))
??????????????? {
??????????????????? using (SPWeb web = site.OpenWeb())
??????????????????? {
??????????????????????? web.AllowUnsafeUpdates = true;
??????????????????????? SPFolder folder = web.GetFolder(FolderPath);
?
??????????????????????? SPListItem listItem = folder.Files.Add(FileName, FileStream).Item;
?
??????????????????????? //斷開原來列表項(xiàng)所繼承的權(quán)限,使其可以設(shè)置獨(dú)立權(quán)限
??????????????????????? listItem.BreakRoleInheritance(true);
??????????????????????? //將原來所繼承的權(quán)限通通移除
??????????????????????? foreach (SPRoleAssignment roleAssignment in listItem.RoleAssignments)
??????????????????????? {
??????????????????????????? roleAssignment.RoleDefinitionBindings.RemoveAll();
??????????????????????????? roleAssignment.Update();
??????????????????????????? listItem.Update();
??????????????????????? }
??????????????????????? //獲取將要設(shè)置權(quán)限的用戶
??????????????????????? SPUser myUser = web.EnsureUser(allLoginName);
????????????? ??????????//定義權(quán)限分配
??????????????????????? SPRoleAssignment myRoleAssignment = new SPRoleAssignment(myUser.LoginName, myUser.Email, myUser.Name, myUser.Notes);
??????????????????????? //綁定設(shè)置的權(quán)限
??????????????????????? myRoleAssignment.RoleDefinitionBindings.Add(web.RoleDefinitions.GetByType(SPRoleType.Reader));
??????????????????????? //把這個(gè)權(quán)限加到我們的列表中
??????????????????????? listItem.RoleAssignments.Add(myRoleAssignment);
??????????????????????? listItem.Update();
?
?????? ?????????????????web.AllowUnsafeUpdates = false;
??????????????????????? return true;
??????????????????? }
??????????????? }
??????????? }
??????????? catch
??????????? {
??????????????? return false;
??????????? }
??????? }
?
??????? //通過ID獲取列表項(xiàng)
??????? public static string GetRoleAssignmentsOfSPListItem(string ListName, int ItemID)
??????? {
??????????? string reValue = string.Empty;
??????????? try
??????????? {
??????????????? using (SPSite site = new SPSite(SiteUrl))
??????????????? {
??????????????? ????using (SPWeb web = site.OpenWeb())
??????????????????? {
??????????????????????? web.AllowUnsafeUpdates = true;
??????????????????????? SPList list = web.Lists[ListName];
??????????????????????? SPListItem item = list.Items.GetItemById(ItemID);
??????????????????????? SPRoleAssignmentCollection Rolecoll = item.RoleAssignments;
??????????????????????? foreach (SPRoleAssignment role in Rolecoll)
??????????????????????? {
??????????????????????????? for (int i = 0; i < role.RoleDefinitionBindings.Count; i++)
??????????????????????????? {
??????????????????????????????? reValue += (role.Member.LoginName + ":" + role.RoleDefinitionBindings[i].Name + ":" + role.RoleDefinitionBindings[i].BasePermissions.ToString());
??????????????????????????? }
??????????????????????? }
?
??????????????????????? web.AllowUnsafeUpdates = false;
??????????????????? }
??????????????? }
??????????? }
??????????? catch
??????????? {
??????????? }
??????????? return reValue;
??????? }
?
后記:幾個(gè)簡單的方法,測(cè)試通過,可能不太完善,需要的話可以繼續(xù)完善。
?
?
?
天天想你紅棗,您的健康,‘棗‘的承諾 <a href="http://shop109102900.taobao.com" target="_blank" style="color:red">天天想你紅棗淘寶店</a>
轉(zhuǎn)載于:https://www.cnblogs.com/TNSSTAR/p/3602819.html
總結(jié)
以上是生活随笔為你收集整理的SharePoint 服务器端对象模型操作文档库(上传/授权/查看权限)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 周五的内容
- 下一篇: 常用Nagios配置命令