zoukankan      html  css  js  c++  java
  • SharePoint 服务器端对象模型操作文档库(上传/授权/查看权限)

    来源于:http://www.cnblogs.com/jianyus/p/3258863.html

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

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

            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;

            }

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

    天天想你红枣,您的健康,‘枣‘的承诺 <a href="http://shop109102900.taobao.com" target="_blank" style="color:red">天天想你红枣淘宝店</a>

  • 相关阅读:
    vue-router 实践
    修改vue中<router-link>的默认样式
    JSON.parse() 与 JSON.stringify() 的区别
    JS 中的异步操作
    CSS3 box-sizing:border-box的好处
    element ui 栅格布局
    css overflow用法
    koa中间件机制
    canvas 入门
    前端面试题:淘宝首页用了多少种标签
  • 原文地址:https://www.cnblogs.com/TNSSTAR/p/3602819.html
Copyright © 2011-2022 走看看