Я хочу использовать SPExport (который работает нормально) и SPImport для копирования одного веб-сайта в другое место. Я использую страницу приложения в Sharepoint Foundation 2010. Этот код выполняется в событии Click Button.Sharepoint 2010 исключение безопасности SPImport.Run
using (SPWeb web = site.OpenWeb(sourceWebUrl))
{
SPExportSettings exportSettings = new SPExportSettings();
exportSettings.FileLocation = exportPath;
exportSettings.BaseFileName = exportFileName;
exportSettings.SiteUrl = site.Url;
exportSettings.ExportMethod = SPExportMethodType.ExportAll;
exportSettings.FileCompression = true;
exportSettings.IncludeVersions = SPIncludeVersions.All;
exportSettings.IncludeSecurity = SPIncludeSecurity.All;
exportSettings.ExcludeDependencies = false;
exportSettings.ExportFrontEndFileStreams = true;
exportSettings.OverwriteExistingDataFile = true;
SPExportObject expObj = new SPExportObject();
expObj.IncludeDescendants = SPIncludeDescendants.All;
expObj.Id = web.ID;
expObj.Type = SPDeploymentObjectType.Web;
exportSettings.ExportObjects.Add(expObj);
SPExport export = new SPExport(exportSettings);
export.Run();
}
using (SPWeb web = site.OpenWeb(destinationWebUrl))
{
web.AllowUnsafeUpdates = true;
SPImportSettings importSettings = new SPImportSettings();
web.FileLocation = exportPath;
web.BaseFileName = exportFileName;
web.IncludeSecurity = SPIncludeSecurity.All;
web.UpdateVersions = SPUpdateVersions.Overwrite;
web.RetainObjectIdentity = false;
web.SiteUrl = site.Url;
web.WebUrl = web.Url;
web.Validate();
SPImport import = new SPImport(importSettings);
import.Run();
web.AllowUnsafeUpdates = false;
}
Исключение «Проверка безопасности для этой страницы является недопустимым. Нажмите кнопку Назад в вашем веб-браузере, обновите страницу и попробуйте свои операции снова.» Выбрасывается при SPImport.Run() называется.
Мне не удалось найти решение этой проблемы, не добавляя элемент управления FormDigest на странице приложения или «Разрешить небезопасные обновления» в целевой сети.
Кроме того, запуск этого кода из Консольного приложения работает нормально, но если код запускается с страницы приложения, он не работает (даже с повышенной безопасностью).
Любая помощь будет оценена по достоинству. Благодарю.
Поздравляю с решением. Когда вы в состоянии, пожалуйста, отметьте свой ответ как «принятый», чтобы другие могли узнать о вашем успехе. Cheers ~ –
Для людей, которые повышают привилегии, вам нужно сделать это раньше. http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.utilities.sputility.validateformdigest(v=office.14).aspx – trgraglia