2009-05-07 5 views
1

私はucercontrolをいくつか構築しています。これらのユーザーコントロールは、return of the smartpart内でホストされます。私が直面している問題は、彼らと一緒に行く私のアセンブリが十分な権利を適切に与えられていないということです。カスタムポリシーレベルでは、共有ポイントを完全に信頼するアセンブリを提供しません。

これを実現するには、(基本的に)3つのオプションがあります。
1.サイトを完全信頼レベルに設定してください(これは明らかに望ましくはありませんが、私にとってはうまくいきません)。
2.アセンブリをgacに置きます。
3.私が望むことは、議会に特別な権利を与えることです。

これは、カスタムの信頼ファイルを使用して行うことができます。これは私が今までに思いついたものですが、うまくいきません。誰かが私にこの方向の正しい方向を向けることができますか?

は、security classes要素でこれらの2つの句を追加しました。

<SecurityClass Name="AssemblyOne" Description="MyAssemblies.AssemblyOne, Version=1.0.0.0, Culture=neutral, PublicKeyToken=132bddbb4f2e45f2"/> 
<SecurityClass Name="AssemblyTwo" Description="MyAssemblies.AssemblyTwo, Version=1.2.0.0, Culture=neutral, PublicKeyToken=e5141be41498e913" /> 

は名前の許可にこの句を追加

 <PermissionSet 
       class="NamedPermissionSet" 
       version="1" 
       Name="SPFULL" 
       Unrestricted="true"> 
      <IPermission 
        class="AspNetHostingPermission" 
        version="1" 
        Level="Minimal" 
         /> 
      <IPermission 
        class="SecurityPermission" 
        version="1" 
        Flags="Execution" 
         /> 
      <IPermission class="WebPartPermission" 
        version="1" 
        Connections="True" 
         /> 
      <Assemblies> 
      <Assembly Name="MyAssemblies.AssemblyOne" Version="1.0.0.0" PublicKeyBlob="002400000480000094000000060200000024000052534131000400000100010015fd63eb99fee087978556fcf698fae059d75307d1ee8e44486a349ea87843344440af9051d4434bac1d219b3a219d5f0ff50e8c0ed9eb7c07eab19d9ff0494ecaafc5ce1cb65d59ddd153b0f09790d6641af0325aaceb81c2e55c4610a1c18ae9f5a476de2282918a293726bce20aa932e06666b4e8b6885775b919a93a91a9" /> 
      <Assembly Name="MyAssemblies.AssemblyTwo" Version="1.2.0.0" PublicKeyBlob="00240000048000009400000006020000002400005253413100040000010001007da2bfd8e8ec53bd9caa8a5e3af2408cabd60b04c1df80bf8cbad447addaa8a7854818c77ea4f1ada3b73f33836b716999a5aac2475b22c676cedb3fe42cb2ebfba9dc20c04b1baab5a75ead6169b45d1dbef0bcbe82d5f862f954739ed100eaf41425eddd559aee883c055da038d0d8c2e998db799d6e1995ddea95a48eb0b4" /> 
      </Assemblies> 
     </PermissionSet> 

を設定し、その後、私は、既存の「デフォルト」コード・グループの上にこの句を追加しました。

<CodeGroup 
     class="UnionCodeGroup" 
     version="1" 
     PermissionSetName="SPFULL" 
     Name="My first Web Part" 
     Description="This code group grants the my first web part full permissions."> 
     <IMembershipCondition 
      class="StrongNameMembershipCondition" 
      version="1"    PublicKeyBlob="002400000480000094000000060200000024000052534131000400000100010015fd63eb99fee087978556fcf698fae059d75307d1ee8e44486a349ea87843344440af9051d4434bac1d219b3a219d5f0ff50e8c0ed9eb7c07eab19d9ff0494ecaafc5ce1cb65d59ddd153b0f09790d6641af0325aaceb81c2e55c4610a1c18ae9f5a476de2282918a293726bce20aa932e06666b4e8b6885775b919a93a91a9" /> 
     <IMembershcipCondition 
      Class="StrongNameMembershipCondition" 
      version="1" 
      PublicKeyBlob="00240000048000009400000006020000002400005253413100040000010001007da2bfd8e8ec53bd9caa8a5e3af2408cabd60b04c1df80bf8cbad447addaa8a7854818c77ea4f1ada3b73f33836b716999a5aac2475b22c676cedb3fe42cb2ebfba9dc20c04b1baab5a75ead6169b45d1dbef0bcbe82d5f862f954739ed100eaf41425eddd559aee883c055da038d0d8c2e998db799d6e1995ddea95a48eb0b4"/> 
     </CodeGroup> 

誰でもこの権利を取得する方法を教えていただけますか?

+0

あなたのアセンブリをGACに配置すると、どのようなエラーが発生しますか? SmartPartアセンブリもその時点でGACされましたか? –

答えて

0

私はGACにdllを入れたり、web.configの設定をFullTrustに変更することはできません。それ以上のアクセス許可を与えることはできません。発生している問題がセキュリティに関連していると確信していますか?あなたがGACにdllのうちの1つだけを置く場合、あなたは[assembly:AllowPartiallyTrustedCallers()]属性を持っていますか?

ちょうどメモ: あなたの権限をWSP:s manifest.xmlに入れてください。これにより、機能が展開されたときにSharePointがすべてのフロントウェブ上でdllの正しい許可を設定するようになります。管理が容易になります。

http://msdn.microsoft.com/en-us/library/aa543901.aspx

+0

私はこれを試し、あなたに知らせるでしょう。 – Obelix

関連する問題