2011-01-14 22 views
4

MOSS 2007のユーザープロファイルを編集するために、次のコードを記述しました。ユーザープロファイルは、Active Directoryを通じて入力されています。Sharepoint-Active Directoryプロファイル

SPSecurity.RunWithElevatedPrivileges(delegate() 
      { 
       SPSite sc = new SPSite("http://xxxxx:81"); 
       ServerContext context = ServerContext.GetContext(sc); 
       HttpContext currentContext = HttpContext.Current; 
       HttpContext.Current = null; 
       UserProfileManager profileManager = new UserProfileManager(context); 
       foreach (UserProfile profile in profileManager) 
       { 
        if (profile[PropertyConstants.PreferredName].ToString().Contains("Domain\\")) 
        { 
         profile[PropertyConstants.PreferredName].ToString().Replace("Domain\\", "").ToString(); 
         profile.Commit(); 
         NoOfUser++; 
        } 

}

詳細が適切に更新されます。

私の質問は、どのサイトを使用して詳細を更新する必要があるかです。

例として、SSPサービスのWebアプリケーション、サーバーの全体管理Webアプリケーションおよびその他のWebアプリケーションがあります。

プロファイルを更新するためにどのサイトを使用する必要があるので、すべてのサイトでプロファイル名が更新されます。

誰でも正しい方向に向けることができます。

ありがとうございます。 ハリ・ギララ NHS Direct。

答えて

3

Sharepoint 2007では、SPSiteはSPWebApplicationsに属しています.SPWebApplicationsは、ユーザープロファイルのプロパティを格納するSSPに関連付けられています。

SPSite sc = new SPSite("http://xxxxx:81"); 
ServerContext context = ServerContext.GetContext(sc); 

これらの行は、あなたが渡すのSPSiteのURLに関連付けられているSSPを検索有効性。

あなたが唯一のSSPを持っているように見えますので、あなたは、コンストラクタで使用するすべてのSPSiteのURLはあなたへの参照を与えます正しいSSP。

情報がSSPデータベースに格納されると、タイマージョブはSSPストアから個々のSPSiteデータベースに情報を隠しリスト "ユーザー情報リスト"にコピーします。

このリンクは、2010年のためにそれを説明し、私は2007年のためにそれを見つけることができるなら、私は見てみましょう:

http://www.harbar.net/articles/sp2010ups.aspx

EDIT

私はあなたのための2007の説明のリンクが見つかりました:

http://blah.winsmarts.com/2007-7-MOSS_User_Profile_Info_-_How_the_information_flows.aspx

+0

多くの感謝の返信です。本当に役に立ちます。ニースの説明。ありがとうございました –