обеспечить сборку с полным доверием в sharepoint, так как пользовательский уровень политики не работает - PullRequest
1 голос
/ 07 мая 2009

Я создаю пару ucercontrols. Эти пользовательские элементы управления будут размещены в пределах возврата smartpart . Проблема, с которой я сталкиваюсь, заключается в том, что моя сборка, которая идет с ними, не имеет достаточных прав.

Чтобы добиться этого, у вас (в основном) есть три варианта;
1. Установите для сайта полный уровень доверия (очевидно, не хочу, чтобы он работал на меня. Сборка не является доверенной)
2. Поместите сборку в gac (тоже пробовал, тоже не работает).
3. в плане безопасности я хотел бы предоставить своей сборке особый набор прав.

Это можно сделать с помощью пользовательского файла доверия. Это то, что я придумал до сих пор, но это не работает. Может ли кто-нибудь указать мне правильное направление на этом?

добавил эти два предложения в элемент классов безопасности;

<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>

Может кто-нибудь указать мне, как сделать это правильно?

1 Ответ

0 голосов
/ 07 мая 2009

Я не вижу, как не работает установка dll в GAC или изменение параметра web.config на FullTrust. Вы не можете дать ему больше разрешений, чем это. Вы уверены, что проблема, с которой вы столкнулись, связана с безопасностью? Если вы помещаете только один из dll в GAC, у вас есть атрибут [assembly: AllowPartiallyTrustedCallers ()] -?

Просто примечание: Вместо этого вы должны поместить свой набор разрешений в файл WSP: manifest.xml, чтобы убедиться, что SharePoint устанавливает правильное разрешение для библиотеки DLL на всех веб-сайтах при развертывании этой функции. Это облегчит администрирование.

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

...