gpt4 book ai didi

sharepoint - SharePoint 中的 LayoutsPageBase 和 CAS 策略

转载 作者:行者123 更新时间:2023-12-03 20:03:06 25 4
gpt4 key购买 nike

我有一个在 SharePoint 中创建的应用程序页面托管在 LAYOUTS 目录中。该页面继承自 LayoutsPageBase,目前没有其他代码。 ASPX 文件设置为继承自此类/程序集。非常简单。

我的问题是我想将我的程序集部署到应用程序 BIN 目录(不是 GAC)并使用 CAS 权限策略以允许它在 SharePoint 中执行。但是,此时,每当我部署页面时,我都会收到此异常:

Request failed. at System.Reflection.Assembly._GetType(String name, Boolean throwOnError, Boolean ignoreCase) at System.Web.UI.TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError) at System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly) at System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData)

在我遇到权限错误的所有其他情况下,异常会指示我缺少哪个特定权限(例如 SqlClientPermission 或 FileIOPermission)。

我知道这个问题与 CAS 相关,因为当我部署到 GAC 时它工作正常。

我当前的 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>

我目前的想法是,它与 LayoutsPageBase 类有关,因为当我将其更改为从基本 System.Web.UI.Page 继承时,该页面与我的 CAS 策略配合得很好。

我在我的程序集上使用了 Microsoft 提供的 permcalc 工具并添加了它发现的权限,但问题没有得到解决。

所以我的长篇大论的问题是:是否有人使用 CAS 策略部署了从 SharePoint 的 LayoutsPageBase 继承的应用程序页面,您需要在 CAS 策略中指定哪些权限才能使其正常工作?

最佳答案

好的,明白了。 Microsoft.SharePoint.WebControls命名空间的LayoutsPageBase类修饰如下:

[PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust"), PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
public class LayoutsPageBase : UnsecuredLayoutsPageBase

因此结果是您必须完全信任(通过 GAC 或权限集成员)才能运行从 LayoutsPageBase 继承的应用程序页面。

关于sharepoint - SharePoint 中的 LayoutsPageBase 和 CAS 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/803477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com