2011-10-26 10 views
1

Sharepointのサイトにクレームを追加する小さなコードが書かれています。 は、私はそのように進んでください。プログラムでリクエストをリストに追加する

using (SPSite site = new SPSite(url)) 
     { 
      using (SPWeb web = site.OpenWeb()) 
      { 
       SPClaimProviderManager claimMgr = SPClaimProviderManager.Local; 
       if (claimMgr != null) 
       { 
        SPClaim claim = new SPClaim(type, claim_name, Microsoft.IdentityModel.Claims.ClaimValueTypes.String, SPOriginalIssuers.Format(SPOriginalIssuerType.ClaimProvider, provider)); 
        string userName = claimMgr.EncodeClaim(claim); 
        SPUserInfo info = new SPUserInfo 
        { LoginName = userName, 
         Name = name }; 

        SPRoleAssignment roleAssignment = new SPRoleAssignment(info.LoginName, info.Email, info.Name, info.Notes); 
        roleAssignment.RoleDefinitionBindings.Add(web.RoleDefinitions["Read"]); 
        web.RoleAssignments.Add(roleAssignment); 
        web.Update(); 
       } 
      } 
     } 

かなり簡単ですが、私が作成したリストに請求を追加したいと思います。今は、SPSiteとSPWebを使ってサイトにアクセスしていますが、もっと深く進む必要があります。私は道を見つけることができません。

ありがとうございます!両方以来

答えて

1

SPWebSPList、あなたがしなければならないすべてはあなたがアクセス権を変更したいそのリストのSPListオブジェクトをロードでSPSecurableObjectから継承します。

SPListをロードすることができますいずれかby URLlist titleによって:役割の割り当てを変更した後、ウェブまたはリストを更新するために必要とされていない

 using (SPSite site = new SPSite(url)) 
     { 
      using (SPWeb web = site.OpenWeb()) 
      { 
       SPClaimProviderManager claimMgr = SPClaimProviderManager.Local; 
       if (claimMgr != null) 
       { 
        SPClaim claim = new SPClaim(type, claim_name, Microsoft.IdentityModel.Claims.ClaimValueTypes.String, SPOriginalIssuers.Format(SPOriginalIssuerType.ClaimProvider, provider)); 
        string userName = claimMgr.EncodeClaim(claim); 
        SPUserInfo info = new SPUserInfo 
        { LoginName = userName, 
         Name = name }; 

        SPRoleAssignment roleAssignment = new SPRoleAssignment(info.LoginName, info.Email, info.Name, info.Notes); 
        roleAssignment.RoleDefinitionBindings.Add(web.RoleDefinitions["Read"]); 
        // web.RoleAssignments.Add(roleAssignment); 
        // web.Update(); 

        SPList list = web.Lists["TheListTitle"]; 
        list.RoleAssignments.Add(roleAssignment); 
       } 
      } 
     } 

:あなたの例では

SPList listByTitle = web.Lists["Tasks"]; 
SPList listByUrl = web.GetList("/server/relative/Lists/Tasks"); 

+0

wow it's simple ... Sharepointは私にとって非常に新しいものであり、私はクレームで遊ぶように頼んだので、私は迷っています! ありがとうございました! – Gun

関連する問題