无法捕获SharePoint访问被拒绝错误。

7
我正在尝试通过WebPart编程方式访问SharePoint列表,就像这样。
try
{
      masterList = web.Lists[listId];
}
catch(Exception e)
{
      RenderExceptionMessage(e.Message);
}

RenderExceptionMessage()方法旨在在WebPart内显示用户友好的错误消息。 但问题是我无法捕获异常。相反,WebPart页面重定向到拒绝访问页面,并显示错误消息“您当前登录为:Domain\user”。 此外,被捕获的异常消息显示“由于代码被优化或本机帧位于调用堆栈的顶部,因此无法评估表达式。” 你有任何想法,为什么会出现这种情况?
2个回答

9

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

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


1
也许另一种处理方式是添加一些防御性编程,例如检查用户是否有权访问SPWeb和/或SPList。我想,SPWeb.EnsureUser可能会有所帮助。SPList.CheckPermissions或SPList.DoesUserHavePermissions也可能有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接