探索與發現

          研究java技術

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            83 隨筆 :: 0 文章 :: 109 評論 :: 0 Trackbacks
          Sharepoint2007中的權限都是通過角色來定義的,一切權限都是通過權限來設置,在設置權限的時候,只能給用戶或組賦予一個角色,而不能直接去修改他的權限。
          每一個能分配權限的對象(SPWebSPListSPListItem)都會有一個RoleAssignments屬性,它是一個SPRoleAssignmentCollection類型的屬性,用于分配權限。此外,在SPWeb里還有RoleDefinitions屬性(只在SPWeb里有,角色只能定義在網站里)。

          1.給一個用戶設置一個詳細的自定義的權限:
          SPUser user ;//取得Sharepoint用戶
          SPRoleAssignment myRoleA =
          new SPRoleAssignment(user);
          SPRoleDefinition myRoleD = web.RoleDefinitions["xxx"];
          myRoleA.RoldDefinitionBindings.Add(myRoleD);
          list.RoleAssignments.Add(myRoleA);

          2.修改一個用戶的權限:
          SPRoleAssignment myRoleA = list.RoleAssignments.GetAssignmentByPrincipal(user);
          SPRoleDefinition myRoleD = web.RoleDefinitions["xxx"];
          myRoleA.RoldDefinitionBindings.Add(myRoled);
          myRoleA.Update();

          如果該列表的權限是繼承該網站的,那么要首先打破這種繼承關系
          list.BreakRoleInheritance(true/false);
          參數是true將網站中的權限拷貝過來和原來的權限是一樣的,如果是false則為列表模板的默認權限。

          SPListItem item = properties.ListItem;
          SPWeb web = properties.OpenWeb();
          SPUser user = web.EnsureUser((new SPFieldLookupValue(item["Test"].ToString())).LookupValue);
          SPUser chris = web.EnsureUser((new SPFieldLookupValue(item["chris"].ToString())).LookupValue);
          SPUser henry = web.EnsureUser((new SPFieldLookupValue(item["Personalabteilung"].ToString())).LookupValue);
          SPRoleDefinition roleReader = web.RoleDefinitions.GetByType(SPRoleType.Reader);
          SPRoleDefinition roleWriter = web.RoleDefinitions.GetByType(SPRoleType.Contributor);
          SPRoleAssignment roleAssignmentReader = new SPRoleAssignment((SPPrincipal)user);
          SPRoleAssignment roleAssignmentWriter = new SPRoleAssignment((SPPrincipal)
          chris );
          SPRoleAssignment roleAssignmentWriterOther = new SPRoleAssignment((SPPrincipal)
          henry );
          roleAssignmentReader .RoleDefinitionBindings.Add(roleReader);
          roleAssignmentWriter .RoleDefinitionBindings.Add(roleWriter);
          roleAssignmentWriterOther .RoleDefinitionBindings.Add(roleWriter);
          if (!item.HasUniqueRoleAssignments)

          {

               item.BreakRoleInheritance(false);

          }

          item.RoleAssignments.Add(roleAssignmentReader);
          item.RoleAssignments.Add(roleAssignmentWriter);
          item.RoleAssignments.Add(
          roleAssignmentWriterOther );
          item.Update();


          posted on 2009-05-13 07:13 蜘蛛 閱讀(470) 評論(1)  編輯  收藏 所屬分類: 日常瑣事

          評論

          # re: Sharepoint2007權限問題 2009-05-13 07:23 蜘蛛
          [MOSS開發]:WSS v3授權
          http://www.cnblogs.com/ASPNET2008/archive/2009/01/15/1373920.html  回復  更多評論
            

          主站蜘蛛池模板: 无为县| 开远市| 新蔡县| 曲麻莱县| 广宁县| 太原市| 揭东县| 兴和县| 新蔡县| 通山县| 腾冲县| 高要市| 丰城市| 平邑县| 永泰县| 巴彦县| 澜沧| 聂荣县| 申扎县| 景德镇市| 绥宁县| 白城市| 同心县| 黔江区| 吴江市| 梓潼县| 肇州县| 九龙县| 新巴尔虎左旗| 扬州市| 岳阳市| 贵州省| 乌苏市| 太和县| 盐边县| 石渠县| 凤冈县| 广汉市| 新津县| 常宁市| 南岸区|