2009-03-06 8 views
1

Webサービスを介してSharepointと対話するときは、ドメイン\ユーザー名が必要です。例:Sharepointとの対話方法:フルネームのみを取得した場合

UserProfileService.GetUserProfileByName(string accountName) 

accountNameはdomain \ user nameである必要があります。

フルネーム(FirstName LastName)のみの場合は、SharePointと通信することはできますか? フルネームをdomain \ user nameに変換する方法はありますか? ドメイン\ユーザー名は唯一の方法ですか?

ありがとうございます。 :)


ありがとうございました。 :)

コードは次のようになります。

using System.DirectoryServices; 



const string ADPATH = "LDAP://myLDAPserver,validUserforAD"; 
const string USERNAME = "myDomain\\myUserName"; 
const string PASSWORD = "myPassword"; 
const string DOMAIN = "myDomain\\"; 

public static DirectoryEntry GetDirectoryObject() 
{ 
     DirectoryEntry directoryObject = new DirectoryEntry(ADPATH, USERNAME, PASSWORD, AuthenticationTypes.Secure); 
     return directoryObject; 
} 


public string GetUserNameByCompleteName(string completeName) 
{ 
      DirectoryEntry adObject = GetDirectoryObject(); 

      //filter based on complete name 
      DirectorySearcher searcher = new DirectorySearcher(adObject); 
      searcher.Filter = "displayname=" + completeName; 
      SearchResult result = searcher.FindOne(); 

      DirectoryEntry userInfo = result.GetDirectoryEntry(); 

      //getting user name 
      string userName = (string)userInfo.Properties["samaccountname"].Value ?? string.Empty; 
      userInfo.Close(); 
      adObject.Close(); 

      return DOMAIN + userName; 
} 

答えて

1

私はあなたが自分のアカウント名を決定するために、ユーザーの姓と名のActive Directoryを照会しようとすることができることとします。

+0

ありがとうございます。それはうまくいく。 – ira

1

UserGroup.GetAllUserCollectionsFromWeb()を試してみてください。結果を反復して、指定した表示名のログイン名を取得できます。

+0

あなたの答えを読む前に、ADへの質問が実装されています。別の答え、ジェイソンありがとう! – ira

1

PeopleEditorコントロールを使用すると、姓、名字の組み合わせを入力するか、ディレクトリを参照できます。

people = new PeopleEditor(); 
people.MultiSelect = false; 

this.Controls.Add(people); 

... 

int userID = Int32.Parse((((PickerEntity)people.ResolvedEntities[0]).EntityData["SPUserID"]).ToString()); 

SPUser user = SPContext.Current.Site.RootWeb.SiteUsers.GetByID(userID); 

ちょっと面倒ですが、それはうまくいきます。プログラムで取得する必要がある場合は、上記のようにJasonが言ったようにしてSPUserCollectionとループスルーして、適切な表示名でSPUserを探します。

+0

寄付いただきありがとうございます、アンディ! :) – ira

関連する問題