none
LDAP連携したデータ取得方法について RRS feed

  • 質問

  • LDAP連携したデータ取得方法について


    LDAP連携いてmFindAll後に、result.GetDirectoryEntry().Properties("employeenumber").Value でデータを取得していますが、複数回問い会わせしているため、レスポンスに時間が掛かっています。

    レスポンスを短縮するため、FINDALLで全データを取得しているので、LDAPテーブルからイメージをGetDirectoryEntry()を使用せずにデータを取得する方法があるようでしたら、教えてください。

    例)サンプル

    Dim search As New System.DirectoryServices.DirectorySearcher(entry)
    Dim findvalue As String = TextBox1.Text
    search.Filter = "cn=" & findvalue & "*"
    Dim result As System.DirectoryServices.SearchResult
     Each result In search.FindAll()
     syainno = result.GetDirectoryEntry().Properties("employeenumber").Value ←ここで、個別に必要データを取得している。

    環境は以下の通りです。

    システム : Wicrosoft Windows 2000 Service Pack4
    DB : SQL Server 2005

    Microsoft Visual Web Developer 2005 Express Edition
    NET.Framework 2.0
    開発言語 VB
    ASP.NET 2.0
    2009年3月26日 7:30

回答

  • こんにちは

    検索結果に指定したプロパティのデータが含まれているかを調べたいでよろしいですか?
    その場合は。result.Properties.Contains("employeenumber") や result.Properties("employeenumber").Count > 0 で調べることができたと思います。
    • 回答としてマーク tanuyoshi 2009年4月2日 2:48
    2009年4月1日 14:17

すべての返信

  • VBの構文的にあってるかわかりませんが、
    1 Dim search As New System.DirectoryServices.DirectorySearcher(entry) 
    2 Dim findvalue As String = TextBox1.Text 
    3 search.Filter = "cn=" & findvalue & "*" 
    4 search.PropertiesToLoad.Add("employeenumber"
    5 Dim result As System.DirectoryServices.SearchResult 
    6  Each result In search.FindAll() 
    7  syainno = result.Properties("employeenumber").Value 
    とDirectorySearcher.PropertiesToLoadにあらかじめ必要なプロパティを設定しておくと、SearchResult.Propertiesにその値が入ります。
    2009年3月26日 11:45
  • 回答有難うごいざいます。


    VBの構文的にあってるかわかりませんが、
    1 Dim search As New System.DirectoryServices.DirectorySearcher(entry) 
    2 Dim findvalue As String = TextBox1.Text 
    3 search.Filter = "cn=" & findvalue & "*" 
    4 search.PropertiesToLoad.Add("employeenumber"
    5 Dim result As System.DirectoryServices.SearchResult 
    6  Each result In search.FindAll() 
    7  syainno = result.Properties("employeenumber").Value 
    とDirectorySearcher.PropertiesToLoadにあらかじめ必要なプロパティを設定し

    指摘された内容を確認してみます。

    2009年3月27日 1:34


  • テストした結果、以下のように修正して、データが取得できました。
    有難うございました。

     syainno = result.Properties("employeenumber").Value 

    syainno = result.Properties("employeenumber").Item(0)
    で、データが取得できました。

    2009年3月30日 8:45
  • result.Properties("employeenumber").Item(0)のテーブルが作成されているかどうかの判定をしたいのですが、
    確認する方法を教えてください。

    result.Properties("employeenumber").conteins(0)等で、判定できるでしょうか?

    よろしくお願いします。
    2009年3月31日 7:45
  • こんにちは

    検索結果に指定したプロパティのデータが含まれているかを調べたいでよろしいですか?
    その場合は。result.Properties.Contains("employeenumber") や result.Properties("employeenumber").Count > 0 で調べることができたと思います。
    • 回答としてマーク tanuyoshi 2009年4月2日 2:48
    2009年4月1日 14:17
  • こんにちは、
    回答ありがとうございます。

    >result.Properties("employeenumber").Count > 0 で調べることができたと思います。

    指摘の通りで、確認できました。ありがとうございます。



    2009年4月2日 2:50