Проблема Sharepoint при сохранении файла поверх существующего файла в библиотеке документов - PullRequest
2 голосов
/ 16 января 2009

У меня есть существующий документ в библиотеке документов, и я пытаюсь перезаписать этот файл в коде, используя следующий код:

byte[] data = ...
SPListItem li = ...
li.File.SaveBinary(data);

Когда я запускаю этот код, я получаю:

Microsoft.SharePoint.SPException: The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again. ---> System.Runtime.InteropServices.COMException (0x8102006D): The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again.
    at Microsoft.SharePoint.Library.SPRequestInternalClass.PutFile(String bstrUrl, String bstrWebRelativeUrl, Object varFile, PutFileOpt PutFileOpt, String bstrCreatedBy, String bstrModifiedBy, Int32 iCreatedByID, Int32 iModifiedByID, Object varTimeCreated, Object varTimeLastModified, Object varProperties, String bstrCheckinComment, UInt32& pdwVirusCheckStatus, String& pVirusCheckMessage)
    at Microsoft.SharePoint.Library.SPRequest.PutFile(String bstrUrl, String bstrWebRelativeUrl, Object varFile, PutFileOpt PutFileOpt, String bstrCreatedBy, String bstrModifiedBy, Int32 iCreatedByID, Int32 iModifiedByID, Object varTimeCreated, Object varTimeLastModified, Object varProperties, String bstrCheckinComment, UInt32& pdwVirusCheckStatus, String& pVirusCheckMessage)
    --- End of inner exception stack trace ---
    at Microsoft.SharePoint.Library.SPRequest.PutFile(String bstrUrl, String bstrWebRelativeUrl, Object varFile, PutFileOpt PutFileOpt, String bstrCreatedBy, String bstrModifiedBy, Int32 iCreatedByID, Int32 iModifiedByID, Object varTimeCreated, Object varTimeLastModified, Object varProperties, String bstrCheckinComment, UInt32& pdwVirusCheckStatus, String& pVirusCheckMessage)
    at Microsoft.SharePoint.SPFile.SaveBinary(Byte[] file, String checkInComment, Boolean checkRequiredFields, Boolean bIsMigrate, Boolean bIsPublish, SPUser modifiedBy, DateTime timeLastModified, SPVirusCheckStatus& virusCheckStatus, String& virusCheckMessage)
    at Microsoft.SharePoint.SPFile.SaveBinary(Byte[] file, Boolean checkRequiredFields, Boolean bIsMigrate, Boolean bIsPublish, SPUser modifiedBy, DateTime timeLastModified)
    at Microsoft.SharePoint.SPFile.SaveBinary(Byte[] file, Boolean checkRequiredFields)
    at Microsoft.SharePoint.SPFile.SaveBinary(Byte[] file)
    at TestClass.UploadFile()

Я запускаю этот код в форме, размещенной на том же сайте, что и sharepoint, и пользователь, который запускает код, может загрузить файл вручную просто отлично. Нужно ли сначала удалить файл? Проверить это?

Ответы [ 3 ]

2 голосов
/ 09 октября 2009

Попробуйте это исправить:

SPSecurity.RunWithElevatedPrivileges(delegate
{
  using (SPSite elevSite = new SPSite(currentWeb.Site.ID))
  {
    using (SPWeb elevWeb = elevSite.OpenWeb(currentWeb.ID))
    {
      elevWeb.AllowUnsafeUpdates = true;
      // ...
    }
  }
}
1 голос
/ 16 января 2009

Я понял это. Я делал вызов в блоке SPSecurity.RunWithElevatedPrivileges, который вызвал его сбой. Я нахожу это интересным, поскольку вы могли бы подумать, что работа с повышенными привилегиями будет иметь больший доступ, а не меньше.

0 голосов
/ 09 ноября 2010

Попробуйте это также, чтобы устранить ошибку. «Проверка безопасности этой страницы недействительна. Нажмите« Назад »в веб-браузере, обновите страницу и попробуйте снова.«

http://sharepointhelps.wordpress.com/2008/08/05/the-security-validation-for-this-page-is-invalid-click-back-in-your-web/

Спасибо

  • Ашиш Чоталия
...