none
Eigenschaften mit Value null RRS feed

  • Frage

  • Hallo zusammne

    Habe folgendes Problem.

    Meine Properties SearchedObjClass ,SearchedProp ,SearchedPropValue in dem folgenden "Filter" 

    search.Filter = string.Format("(&(ObjectClass={0})({1}={2}))",
    _searchedObjClass, _searchedProp, searchedPropValue);
    sind null Value obwohl die Value im main program zugewisen sind.

    Please help...Was könnte da Problem sein...

    class ADClassNew
        {
     public string SearchedObjClass { get; set; }
            public string SearchedProp { get; set; }
            public string SearchedPropValue { get; set; }
      public string LdapPath { get; set; }
            
            public static DirectoryEntry createDirectoryEntry()
            {
                
                using (DirectoryEntry root =new DirectoryEntry())
                {
                    root.Path = LdapPath;
                    root.Username = LdapUserName;
                    root.Password = LdapUserPass;
                    root.AuthenticationType = AuthenticationTypes.Secure;
                    return root;
                }
                
               
             }
    
            public static SearchResult searchDirectory()
            {
                DirectoryEntry searchEntry = ADClassNew.createDirectoryEntry();
                DirectorySearcher search = new DirectorySearcher(searchEntry);
               string _searchedObjClass = ADClassNew.SearchedObjClass;
               string _searchedProp = ADClassNew.SearchedProp;
               string searchedPropValue = ADClassNew.SearchedPropValue;
    
               search.Filter = string.Format("(&(ObjectClass={0})({1}={2}))", _searchedObjClass, _searchedProp, searchedPropValue);
               search.PropertiesToLoad.Add("Displayname");
                SearchResult result = search.FindOne();
               return result;
            }
     
        }
     
    
    namespace ADSearche
    {
        public partial class Form1 : Form
        {
                   
    
            
            public Form1()
            {
                InitializeComponent();
                           
    
                ADClassNew adclassnew = new ADClassNew();
                adclassnew.LdapPath = "LDAP://mydomain";
                adclassnew.SearchedObjClass = "User";
                adclassnew.SearchedProp = "Displayname";
                adclassnew.SearchedPropValue = "administrator";
            }
       }
    }
    Montag, 26. August 2013 13:24

Antworten

  • Hallo,

    dein Codeausschnitt kommt bei mir nicht mal durch den Compiler. Die Eigenschaften SearchObjClass etc. sind Instanzmember. In der statischen Funktion searchDirectory greifst du nun auf diese nicht statischen Eigenschaften über den Klassennamen zu. Das geht nicht.

    An object reference is required for the non-static field, method, or property

    Selbst wenn du noch statische Varianten des ganzen hast meckert der Compiler wieder:

    The type 'ConsoleApplication22.ADClassNew' already contains a definition for 'SearchedObjClass'

    Und wenn du nun eine Instanz eigenschaften zuweißt, dann sind die in den statischen Membern nicht verfügbar bzw. nicht zugewiesen/haben den Standartwert beim Erstellen einer neuen Instanz.

    PS: Benutze bitte Codeblöcke: Punkt 7. Danke.


    <Code-13/>- Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.


    Montag, 26. August 2013 13:58
    Moderator