AMcoder - javascript, python, java, html, php, sql

CAS քաղաքականություն Sharepoint հավելվածի էջի համար

Ես ունեմ հավելվածի էջ, որը ստեղծում եմ SharePoint-ում՝ LAYOUTS գրացուցակում տեղադրելու համար: Վեբ նախագիծը հղում է կատարում արտաքին ժողովին, որը մուտք է գործում ֆայլային համակարգ՝ արտաքին ֆայլերի համօգտագործումից ֆայլեր ստանալու համար:

Իմ խնդիրն այն է, որ ես ուզում եմ հավաքը տեղակայել հավելվածի BIN գրացուցակում (ոչ GAC) և օգտագործել CAS թույլտվության քաղաքականություն՝ թույլ տալու համար, որ այն գործարկվի SharePoint-ում: Այնուամենայնիվ, այս պահին, երբ ես տեղադրում եմ էջը, ստանում եմ այս բացառությունը.

«System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=չեզոք, PublicKeyToken=b77a5c561934e089» տեսակի թույլտվության հարցումը ձախողվեց:

Ես գիտեմ, որ խնդիրը կապված է CAS-ի հետ, քանի որ այն լավ է աշխատում, երբ ես տեղակայվում եմ GAC-ում:

Իմ ներկայիս CAS թույլտվությունները հետևյալն են.

<SecurityClasses>
    <SecurityClass Name="AllMembershipCondition" Description="System.Security.Policy.AllMembershipCondition, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <SecurityClass Name="AspNetHostingPermission" Description="System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <SecurityClass Name="FirstMatchCodeGroup" Description="System.Security.Policy.FirstMatchCodeGroup, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <SecurityClass Name="NamedPermissionSet" Description="System.Security.NamedPermissionSet"/>
    <SecurityClass Name="SecurityPermission" Description="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <SecurityClass Name="StrongNameMembershipCondition" Description="System.Security.Policy.StrongNameMembershipCondition, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <SecurityClass Name="UnionCodeGroup" Description="System.Security.Policy.UnionCodeGroup, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <SecurityClass Name="UrlMembershipCondition" Description="System.Security.Policy.UrlMembershipCondition, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <SecurityClass Name="WebPartPermission" Description="Microsoft.SharePoint.Security.WebPartPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"/>
    <SecurityClass Name="ZoneMembershipCondition" Description="System.Security.Policy.ZoneMembershipCondition, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <SecurityClass Name="SharePointPermission" Description="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
    <SecurityClass Name="FileIOPermission" Description="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <SecurityClass Name="EnvironmentPermission" Description="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</SecurityClasses>
<NamedPermissionSets>
    <PermissionSet
            class="NamedPermissionSet"
            version="1"
            Unrestricted="true"
            Name="FullTrust"
            Description="Allows full access to all resources"
    />
    <PermissionSet
            class="NamedPermissionSet"
            version="1"
            Name="Nothing"
            Description="Denies all resources, including the right to execute"
    />
    <PermissionSet
            class="NamedPermissionSet"
            version="1"
            Name="SPRestricted">
        <IPermission 
                class="AspNetHostingPermission"
                version="1"
                Level="Minimal"
        />
        <IPermission 
                class="SecurityPermission"
                version="1"
                Flags="Execution"
        />
        <IPermission class="WebPartPermission"
                version="1"
                Connections="True"
        />
    </PermissionSet>
    <PermissionSet
            class="NamedPermissionSet"
            version="1"
            Name="CustomTrust">
        <IPermission 
                class="AspNetHostingPermission"
                version="1"
                Level="Medium"
        />                        
        <IPermission class="WebPartPermission"
                version="1"
                Connections="True"
        />
        <IPermission class="SharePointPermission" 
                version="1" 
                ObjectModel="True" />
        <IPermission
                class="FileIOPermission"
                version="1"
                Unrestricted="true"                             
                Read="$AppDir$"
                Write="$AppDir$"
                Append="$AppDir$"
                PathDiscovery="$AppDir$"                                
        />                      
        <IPermission 
                class="SecurityPermission"
                version="1"
                Flags="Assertion, Execution, ControlThread, ControlPrincipal, RemotingConfiguration, ControlEvidence, UnmanagedCode"
                Unrestricted="true"
        />
        <IPermission
                class="EnvironmentPermission"
                version="1"
                Unrestricted="true"
        />
    </PermissionSet>
</NamedPermissionSets>
<CodeGroup 
        class="FirstMatchCodeGroup"
        version="1"
        PermissionSetName="Nothing">
    <IMembershipCondition 
            class="AllMembershipCondition"
            version="1"
    />
<CodeGroup class="UnionCodeGroup" 
    version="1" 
    PermissionSetName="CustomTrust">
    <IMembershipCondition class="StrongNameMembershipCondition" 
        version="1" 
        PublicKeyBlob="0x00240000048000009400000006020000002400005253413100040000010001002B54E7863E7D5443ACBF8DD7F18B9D2399FF73AE7C791BDEFA2BF7544DFB5B8DBB5C8DD705374386CD6A729C755ED4478CD9FA0FF912385FA1AE684345E82E793262A2DCEE1DEC1178BE488C18D338CFE62BCC1C06E4B235BBB6A886884889FC854F8CFA149DFCD18CC479229F0956E19A1DC9FDECAE844F850C2A34121546B8" 
        Name="ConteoPolicy" /> 
    </CodeGroup>
<CodeGroup 
            class="UnionCodeGroup"
            version="1"
            PermissionSetName="FullTrust">
        <IMembershipCondition 
                class="UrlMembershipCondition"
                version="1"
                Url="$AppDirUrl$/_app_bin/*"
        />
    </CodeGroup>
    <CodeGroup 
            class="UnionCodeGroup"
            version="1"
            PermissionSetName="SPRestricted">
        <IMembershipCondition 
                class="UrlMembershipCondition"
                version="1"
                Url="$AppDirUrl$/*"
        />
    </CodeGroup>
    <CodeGroup 
            class="UnionCodeGroup"
            version="1"
            PermissionSetName="FullTrust">
        <IMembershipCondition 
                class="UrlMembershipCondition"
                version="1"
                Url="$CodeGen$/*"
        />
    </CodeGroup>
    <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing">
        <IMembershipCondition 
            class="ZoneMembershipCondition"
            version="1"
            Zone="MyComputer" />
        <CodeGroup
                class="UnionCodeGroup"
                version="1"
                PermissionSetName="FullTrust"
                Name="Microsoft_Strong_Name"
                Description="This code group grants code signed with the Microsoft strong name full trust. ">
            <IMembershipCondition
                    class="StrongNameMembershipCondition"
                    version="1"
                    PublicKeyBlob="002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293"
            />
        </CodeGroup>
        <CodeGroup
                class="UnionCodeGroup"
                version="1"
                PermissionSetName="FullTrust"
                Name="Ecma_Strong_Name"
                Description="This code group grants code signed with the ECMA strong name full trust. ">
            <IMembershipCondition
                    class="StrongNameMembershipCondition"
                    version="1"
                    PublicKeyBlob="00000000000000000400000000000000"
            />
        </CodeGroup>
    </CodeGroup>
</CodeGroup>

Ես օգտագործեցի Microsoft-ից հասանելի permcalc գործիքը իմ հավաքում և ավելացրեցի նրա հայտնաբերած թույլտվությունները, բայց խնդիրը չլուծվեց:

Որևէ մեկը երբևէ ունեցել է այս խնդիր՝ հավելվածի էջերը Bin պանակում տեղակայելու հարցում:

23.06.2009

Պատասխանները:


1

Ես նախընտրում եմ տեղակայվել աղբարկղի թղթապանակում, սակայն խնդիրներ եմ ունեցել՝ նշելով պահանջվող թույլտվությունները:

Այս մոտեցումը լավ է աշխատում և տրամադրում է ձեր հավաքին լիարժեք վստահություն, մինչդեռ դեռ գտնվում է աղբարկղում:

http://blog.tylerholmes.com/2008/11/creating-custom-cas-policy-file-for.html

Դժբախտաբար, դա ձեռքի գործընթաց է:

24.06.2009

2

Ինտերնետում և MSDN-ում որոշ հոդվածներ կարդալուց հետո ես մեկ այլ լուծում գտա, պարզապես պատրաստեք WSP փաթեթ՝ լուծումը տեղադրելու և մանիֆեստի ֆայլում համապատասխան թույլտվությունները սահմանելու համար: Այս լուծումը հիանալի է, քանի որ դուք պետք չէ ձեռքով փոփոխել Web.config-ը և wss_minimaltrust.config-ը, stsadm-ն այս ամենը կատարում է ավտոմատ կերպով և սերվերային ֆերմայի բոլոր հանգույցներում:

Երբ լուծում եք տեղակայում, մի մոռացեք տեղադրել de option -allowCasPolicies:

STSADM -o deploysolution -name Mysolution.wsp -immediate -url http://serverfarm:8083 -allowCasPolicies

Իմ մանիֆեստն այսպիսի տեսք ունի

    <Solution
  SolutionId="27F5B763-2613-41a7-84D9-458A7206F1BE"
  xmlns="http://schemas.microsoft.com/sharepoint/">
<TemplateFiles>
    <TemplateFile Location="LAYOUTS\MyAppPage\apppage.aspx" />
</TemplateFiles>

<Assemblies>
    <Assembly DeploymentTarget="WebApplication" Location="MyAssembly.dll" >
        <SafeControls>
            <SafeControl Assembly="MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=..." Namespace="MyAssembly" TypeName="*" Safe="True" />
        </SafeControls>
    </Assembly>
</Assemblies>

<CodeAccessSecurity>
    <PolicyItem>
        <PermissionSet class="NamedPermissionSet" version="1" Description="Permisos para My assembly">
            <IPermission class="AspNetHostingPermission" version="1" Level="Minimal" />
            <IPermission class="SecurityPermission" version="1" Flags="Execution,UnmanagedCode,ControlPrincipal,ControlEvidence,Assertion" />
            <IPermission class="System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" version="1" Unrestricted="true" />
            <IPermission class="System.Net.WebPermission, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
            <IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" ObjectModel="True" Impersonate="True" />
            <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" PathDiscovery="*AllFiles*" />
            <IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
            <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
            <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
        </PermissionSet>
        <Assemblies>
            <Assembly PublicKeyBlob="..."/>         
        </Assemblies>
    </PolicyItem>
</CodeAccessSecurity>

30.06.2009

3

Ես միշտ խնդիրներ եմ ունեցել BIN թղթապանակի ճիշտ աշխատանքի հետ, այնպես որ ես միշտ կառուցում եմ իմը GAC-ում տեղակայելու համար:

Microsoft-ը նկարագրում է, թե ինչպես կատարել ճիշտ կարգավորումներ ձեր web.config ֆայլում, որը պետք է թույլ տա, որ ձեր ժողովն աշխատի ավելի բարձր թույլտվություններով:

Լրացուցիչ տեղեկությունների համար նայեք այս էջին: Ես գիտեմ, որ էջը WebParts-ի մասին է, բայց այն նաև պետք է համապատասխանի այն, ինչ դուք փորձում եք անել:

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

23.06.2009
Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..