【问题标题】:Cannot catch the SharePoint Access denied error无法捕获 SharePoint Access denied 错误
【发布时间】:2009-04-07 08:43:58
【问题描述】:

我正在尝试在 Web 部件中以编程方式访问共享点列表,如下所示。

try
{
      masterList = web.Lists[listId];
}
catch(Exception e)
{
      RenderExceptionMessage(e.Message);
}

RenderExceptionMessage() 方法应该在 webpart 中显示用户友好的错误消息。

但问题是我无法捕获异常。相反,webpart 页面重定向到拒绝访问页面,该页面显示错误消息“您当前登录为:域\用户”

此外,捕获的异常消息显示“无法评估表达式,因为代码已优化或本机框架位于调用堆栈顶部。”

知道为什么会这样吗?

【问题讨论】:

    标签: sharepoint sharepoint-2007 moss


    【解决方案1】:

    默认情况下,SharePoint 对页面/Web 服务请求中的拒绝访问异常(包括重定向到自定义页面)进行自定义处理,绕过代码中的异常处理。

    要禁用此自定义处理,请将 SPSecurity.CatchAccessDeniedException 设置为 false。

    【讨论】:

      【解决方案2】:

      处理此问题的另一种方法可能是添加一些防御性编程,例如检查以确保用户可以访问 SPWeb 和/或 SPList。在我的脑海中,我认为 SPWeb.EnsureUser 可以提供帮助。 SPList.CheckPermissions 或 SPList.DoesUserHavePermissions 也可能有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-24
        • 2012-05-03
        • 1970-01-01
        • 2016-09-08
        • 2023-03-28
        • 1970-01-01
        • 2021-06-04
        • 2013-09-09
        相关资源
        最近更新 更多