2009-08-13 22 views
0

「ライブ」サイトの正確なコピーであるのアーカイブサイトがありますが、別のサービスアカウントが使用されています。 _layoutsフォルダーのページにユーザーをリダイレクトするEditControlBlock拡張機能をビルドしました。ページにはテキストとOkボタンがあります。SPWebを使用できません。データベースへのログインに失敗しました。

編集:私が使用しようとしているSPWebは別のWebアプリケーションです。私はファイルxをアーカイブサイトに移動しようとしています。最初の行は、作業を行うため、奇妙ですusing (var newsArchive = archive.RootWeb.Webs[SPContext.Current.Web.Name]):それは2行に分割し、

using (var archive = new SPSite(archiveurl, SPContext.Current.Web.CurrentUser.UserToken)) 
{ 
    using (var newsArchive = archive.RootWeb.Webs[SPContext.Current.Web.Name]) 
    { 
    //move file 
    } 
} 

奇妙なことがある:OKボタンをクリックすると

は、それが次のコードを実行する必要があります。私が手 エラーは次のとおりです。

login failed for user x on database y 

誰もがここでの考え方を持っていますか? LayoutsPageBaseから派生したページ上のコードは、常にWebアプリケーションのapppoolアカウントまたは何かとして実行されていますか?

+0

SPContext.Current.Web&Siteを使用できる場合に新しいSPSiteを使用する理由は何ですか? – Kusek

+0

私が使用しようとしているSPWebは別のWebApplicationにあるためです。私はファイルxをアーカイブサイトに移動しようとしています。 – Colin

答えて

1

私はターゲットデータベース上のデータベースの瞬間を設定しました。ソースWebアプリケーションのapppoolユーザーをターゲットデータベースのdb_ownerグループのメンバーにする必要がありました。これが行く方法であるかどうかはわかりません。より良いアイデアを持っている人は誰でも教えてください。

+0

+1それは意味があり、私が考えることができる最高のアイデアです! –

+0

Webサービスはどうですか? – Kusek

+0

これは、すべてのコードが同じファームで実行されているため、表示する必要があります。それは動作するはずです。 APIを使用できるときにWebサービスを使用すると、IMHOが大きな問題を抱えています(具体的には、問題を回避するためのコードを構成上の問題としています) – Colin

関連する問題