Get Adobe Flash player

Infopath 2010: Get and Set Value of Textbox Field using C#

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Da ich mich heute mit dem Thema Infopath Formular beschäftigt habe hatte ich foldendes Problem. Ich wollte den Namen des aktuell angemeldeten Users in die Textbox eintragen lassen. Dazu gibt es mehrere Möglichkeiten. Ohne zu programmieren habe ich es nicht ganz hinbekommen. Vor- oder Nachname sowie Anmeldename ja, nur nicht den gesamten Namen.

Um ein Feld zu befüllen kann man mit C# oder VB.Net diese Feld genauso befüllen. Dazu in den FormEvents_Loading Abschnitt folgenden Code eingeben:

XPathNavigator nav = this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:EmployeeName", this.NamespaceManager);
nav.SetValue("Value to set");

Was ich machen wollte ist die Information zum aktuell angemeldeten User aus der AD abfragen mit diesem Code:

DirectoryEntry entry = new DirectoryEntry();
entry.AuthenticationType = AuthenticationTypes.Secure;
entry.Path = LDAP://mydomain.local;
            
DirectorySearcher searcher = new DirectorySearcher(entry);

searcher.Filter = "(SAMAccountName=" + System.Environment.UserName + ")";
searcher.PropertiesToLoad.Add("cn");

SearchResult result = searcher.FindOne();
        if (result != null)
            {
                nav.SetValue(result.Properties["cn"][0].ToString());
            }
            else
            {
                nav.SetValue("User not found");

Das haut aber auch nicht hin da ich immer die Fehlermeldung bekomme:

System.Security.SecurityException
Request for the permission of type ‚System.DirectoryServices.DirectoryServicesPermission, System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a‘ failed.

 

Habe dafür aber noch keine Lösung. Mein Code liegt lokal auf der Platte (nicht gemappt) und mein User hat die Berechtigung. Wenn jemand noch eine Idee hat kann gerne auf diesen Eintrag antworten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.