LAYOUTSディレクトリにホストするSharePointに作成するアプリケーションページがあります。ページはLayoutsPageBaseから継承していますが、他のコードは現在ありません。 ASPXファイルは、このクラス/アセンブリから継承するように設定されています。かなり簡単。SharePoint内のLayoutsPageBaseポリシーとCASポリシー
私の問題は、アセンブリをアプリケーションのBINディレクトリ(GACではなく)に配置し、CASのアクセス許可ポリシーを使用してSharePoint内で実行できるようにすることです。しかし、この時点で、ページを展開するたびにこの例外が発生します。
要求が失敗しました。 System.Web.UI.TemplateParser.GetType(String typeName、Boolean ignoreCase、Boolean throwOnError)の System.Web.UI.TemplateParser.ProcessInheritsAttributeの にあるSystem.Reflection.Assembly.GetType(String name、Boolean throwOnError、Boolean ignoreCase)私は権限エラーを得ている他のすべての場合にはSystem.Web.UI.TemplateParser.PostProcessMainDirectiveAttributesで(文字列baseTypeName、文字codeFileBaseTypeName、列src、アセンブリアセンブリ) (IDictionaryをparseData)
、例外があり特定のアクセス許可が不足していることが示されています(例:SqlClientPermissionまたはFileIOPermission)。
私はGACに展開するときに正常に動作するので、この問題はCAS関連であることがわかります。
私の現在のCASの権限は次のようになり:
<PermissionSet class="NamedPermissionSet" version="1" Name="MyPermissionSet"> <IPermission class="AspNetHostingPermission" version="1" Level="Minimal" /> <IPermission class="SecurityPermission" version="1" Flags="Execution, SkipVerification, UnmanagedCode, ControlEvidence" /> <IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" Unrestricted="True" ObjectModel="true" /> <IPermission class="System.Data.SqlClient.SqlClientPermission, System.Data, 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" /> <IPermission class="System.Data.OracleClient.OraclePermission, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" /> </PermissionSet>
私は基本的なシステムを継承し、それを変更するとページが私のCASポリシーに正常に動作して私の現在の考え方は、それはLayoutsPageBaseクラスに関連するということです.Web.UI.Page。
アセンブリからMicrosoftのpermcalcツールを使用し、検出されたアクセス許可を追加しましたが、問題は解決されませんでした。
私の長年にわたる疑問は、CASポリシーを使用してSharePointのLayoutsPageBaseを継承したアプリケーションページを展開したことがありますか?また、CASポリシーではどのようなアクセス許可を指定する必要がありましたか?