探索與發現

          研究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  回復  更多評論
            

          主站蜘蛛池模板: 常德市| 丽江市| 时尚| 阿城市| 建宁县| 深水埗区| 洪雅县| 富蕴县| 花莲市| 保德县| 利津县| 万载县| 寿宁县| 治县。| 高要市| 左贡县| 若尔盖县| 民乐县| 大渡口区| 扶绥县| 巴楚县| 美姑县| 南平市| 旬阳县| 罗山县| 济源市| 博湖县| 江西省| 江川县| 太和县| 黔西| 东源县| 清原| 乡宁县| 灵璧县| 襄城县| 同仁县| 昌吉市| 错那县| 金阳县| 广元市|