• SharePoint 服务器端对象模型操作文档库(上传/授权/查看权限)


      简介:上传文档到文档库,并对项目级授权,查看项目级权限方法

            //在列表根目录下创建文件夹

            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;

            }

     

      //上传文件到文件夹,并授权给相关用户

            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;

     

                            //断开原来列表项所继承的权限,使其可以设置独立权限

                            listItem.BreakRoleInheritance(true);

                            //将原来所继承的权限通通移除

                            foreach (SPRoleAssignment roleAssignment in listItem.RoleAssignments)

                            {

                                roleAssignment.RoleDefinitionBindings.RemoveAll();

                                roleAssignment.Update();

                                listItem.Update();

                            }

                            //获取将要设置权限的用户

                            SPUser myUser = web.EnsureUser(allLoginName);

                            //定义权限分配

                            SPRoleAssignment myRoleAssignment = new SPRoleAssignment(myUser.LoginName, myUser.Email, myUser.Name, myUser.Notes);

                            //绑定设置的权限

                            myRoleAssignment.RoleDefinitionBindings.Add(web.RoleDefinitions.GetByType(SPRoleType.Reader));

                            //把这个权限加到我们的列表中

                            listItem.RoleAssignments.Add(myRoleAssignment);

                            listItem.Update();

     

                            web.AllowUnsafeUpdates = false;

                            return true;

                        }

                    }

                }

                catch

                {

                    return false;

                }

            }

     

            //通过ID获取列表项

            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;

            }

      后记:几个简单的方法,测试通过,可能不太完善,需要的话可以继续完善。

  • 相关阅读:
    事务管理
    QQ邮箱开启SMTP方法如何授权
    基于JavaMail的Java邮件发送:简单邮件发送
    Spring MVC 响应视图(六)
    Spring MVC 数据绑定 (四)
    Spring MVC Spring中的Model (五)
    Spring MVC 拦截器 (十)
    Spring MVC 异常处理 (九)
    Java 骚操作--生成二维码
    Java MD5校验与RSA加密
  • 原文地址:https://www.cnblogs.com/jianyus/p/3258863.html
Copyright © 2020-2023  润新知