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

简介:   简介:上传文档到文档库,并对项目级授权,查看项目级权限方法         //在列表根目录下创建文件夹         public static string CreatFolderToSPDocLib(string strFolderName, string strDocLibName...

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

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

        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;

        }

 

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

目录
相关文章
|
10月前
|
存储 人工智能 边缘计算
当 AI 进入「算力密集时代」:你的服务器能跑通大模型吗?
本文深入探讨AI服务器在技术落地中的核心瓶颈问题,结合实战经验解析从模型训练到端侧部署的算力优化策略。内容涵盖三大典型场景的算力需求差异、GPU服务器选型的五大反直觉真相、实战优化方法(如混合精度训练与硬件资源监控),以及边缘AI部署挑战和解决方案。同时提供算力弹性扩展策略、模型生命周期管理及合规性建议,帮助读者构建可持续发展的算力体系。文末附有获取更多资源的指引。
877 17
|
11月前
|
Java 网络安全 Apache
SshClient应用指南:使用org.apache.sshd库在服务器中执行命令。
总结起来,Apache SSHD库是一个强大的工具,甚至可以用于创建你自己的SSH Server。当你需要在服务器中执行命令时,这无疑是非常有用的。希望这个指南能对你有所帮助,并祝你在使用Apache SSHD库中有一个愉快的旅程!
787 29
|
11月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
10月前
|
存储 弹性计算 测试技术
10分钟私有部署QwQ-32B模型,像购买Ecs实例一样快捷
虽然阿里云提供了基于 IaaS 部署 QwQ-32B 模型的方式,但传统的基于IaaS的部署方式需要用户自行配置环境、安装依赖、优化硬件资源,并解决复杂的网络与存储问题,整个流程不仅耗时耗力,还容易因操作失误导致各种不可预见的问题。 因此,阿里云计算巢提供了基于ECS镜像与VLLM的大模型一键部署方案,通过ECS镜像打包标准环境,通过Ros模版实现云资源与大模型的一键部署,用户无需关心模型部署运行的标准环境与底层云资源编排,10分钟即可部署使用QwQ-32B模型,15分钟即可部署使用Deepseek-R1-70B模型。
|
12月前
|
人工智能 负载均衡 数据可视化
阿里云出手了,DeepSeek服务器拒绝繁忙,免费部署DeepSeek模型671B满血版
阿里云推出免费部署DeepSeek模型671B满血版服务,通过百炼大模型平台,用户无需编码,最快5分钟、最低0元即可完成部署。平台提供100万免费Token,支持DeepSeek-R1和DeepSeek-V3等多款模型调用,有效解决服务器繁忙问题。新手零基础也能轻松上手,享受高效稳定的API调用和自动弹性扩展功能。教程涵盖开通服务、获取API-KEY及配置Chatbox客户端等步骤,详细指引助您快速实现DeepSeek自由。
701 18
|
弹性计算 安全 网络安全
阿里云服务器四种常见购买方式适用对象与购买流程参考
阿里云服务器有多种购买方式,不同的方式适合对象与购买流程不一样,常见的购买方式有自定义购买、一键购买、云市场购买和通过活动购买四种方式。本文为大家介绍这四种方式的区别、适合对象以及详细的流程,以供参考和选择。
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
303 4
|
数据可视化 Linux 网络安全
如何使用服务器训练模型
本文介绍了如何使用服务器训练模型,包括获取服务器、访问服务器、上传文件、配置环境、训练模型和下载模型等步骤。适合没有GPU或不熟悉Linux服务器的用户。通过MobaXterm工具连接服务器,使用Conda管理环境,确保训练过程顺利进行。
2161 0
如何使用服务器训练模型
|
存储 PyTorch API
NVIDIA Triton系列09-为服务器添加模型
本文介绍了如何为NVIDIA Triton模型仓库添加新模型。通过示例模型`inception_graphdef`的配置文件`config.pbtxt`,详细解释了模型名称、平台/后端名称、模型执行策略、最大批量值、输入输出节点及版本策略等配置项。内容涵盖了模型的基本要素和配置细节,帮助读者更好地理解和使用Triton服务器。
341 0