我们的归档网站是“实时”网站的精确副本,但使用其他服务帐户。我已经构建了一个EditControlBlock扩展,可以将用户重定向到_layouts文件夹中的页面。页面上有一些文本和一个Ok按钮。
编辑:我尝试使用的SPWeb位于不同的WebApplication中。我正在尝试将文件x移动到存档站点。
单击“确定”按钮时,应执行以下代码:
using (var archive = new SPSite(archiveurl, SPContext.Current.Web.CurrentUser.UserToken))
{
using (var newsArchive = archive.RootWeb.Webs[SPContext.Current.Web.Name])
{
//move file
}
}
奇怪的是,它突破了第2行:using (var newsArchive = archive.RootWeb.Webs[SPContext.Current.Web.Name])
这很奇怪,因为第一行是有效的。
我得到的错误是:
login failed for user x on database y
有人有想法吗?源自LayoutsPageBase
的页面上的代码是否始终作为Web应用程序apppool帐户运行?
答案 0 :(得分:1)
我目前在目标数据库上设置了数据库权限。我不得不使源Web应用程序的apppool用户成为目标数据库中db_owner组的成员。不确定这是否可行。任何有更好主意的人都请告诉我。