代码之家  ›  专栏  ›  技术社区  ›  Daniel Revell

SharePoint工作流中的安全验证异常无效

  •  0
  • Daniel Revell  · 技术社区  · 16 年前

    我对sharepoint工作流有一个奇怪的安全问题。特定调用似乎会导致以下异常:

    Microsoft.sharepoint.spexception:异常 此页的安全验证是 无效。

    我以前遇到过这个错误,简单的解决方法是

    web.AllowUnsafeUpdates = true;
    ...
    web.AllowUnsafeUpdates = false;
    

    但是,自从工作流作为系统运行以来,我从未在工作流中遇到过此问题。我第一次遇到这个错误是在一个代码活动中,我在该活动中设置了列表项上某列的值。正在包装项目。AllowUnsafeUpdates中的更新修复了它。

    在代码活动之后,我有一个createtask活动。这也会导致相同的错误,但只有在在活动的methodinvoking中运行代码之后。

    在这两种情况下,堆栈跟踪中都涉及splistitem.updateitem。此呼叫未通过安全检查。我不知道这张支票是怎么开的,所以我不知道下一步该怎么办。

    这是一个奇怪的问题,因为这个sharepoint dev机器已经工作了一段时间了。没有其他项目或工作流显示这种行为,因此排除了安装问题。关于这个特殊的工作流程。

    [更新] 我只是通过创建一个新项目并重新构建它来绕过这个问题。我仍然有一个坏的,我仍然想找出它的问题。我希望你能给我一些建议。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Rich Bennema    16 年前

    我没有在工作流中看到过这种情况,但有两种情况我看到过。也许其中一个会有帮助。

    1. 更新sharepoint页面的get而不是post上的项目(即page.ispostback为false)。将allowunsafeupdates设置为true可以修复它。
    2. 在使用提升的权限模拟或运行时更新SharePoint页的投递上的项目。打电话 SPUtility.ValidateFormDigest 修正它。