Laden...
O
omega90 myCSharp.de - Member
Fachinformatiker Wetzlar Dabei seit 02.03.2012 51 Beiträge
Benutzerbeschreibung
Azubi Fachinformatiker Anwendungsentwicklung

Forenbeiträge von omega90 Ingesamt 51 Beiträge

01.08.2013 - 15:58 Uhr

Danke für eure Hilfe. Ich denke Ich werde bei der lokalen Methode bleiben den so hat es bis jetzt immer funktioniert 😃

01.08.2013 - 11:32 Uhr

ja lokal habe Ich das schon gemacht Ich wollte eben nur mal testen ob das funktioniert.

01.08.2013 - 10:39 Uhr

Hallo Zusammen

Ich möchte von meinem Rechner aus meine ASP.NET Webanwendung direkt im IIS auf meinem Server debggen. Dazu bin Ich in mein Projekt gegangen und habe unter Eigenschaften vom Projekt im Reiter Web den Punkt Benutzerdefinierten Webserver verwenden. Dort muss Ich die Server-URL eingeben.

Server-URL:
>
|| bin mir nicht sicher ob das so da stehen muss 😦

Wenn Ich dann die ANwendung starte bekomme Ich einen Fehler:

Das Debugging kann auf dem Webserver nicht gestartet werden. Der Microsoft Visual- Remotedebugmonitor (MSVSMON.EXE) wird auf dem Remotecomputer nicht ausgeführt. Weitere Informationen finden Sie in der Hilfe.

Ich habe ein wenig im Inet gesucht und gelesen das Ich auf dem Server Visual Studio installieren müsste 😕 stimmt das? Oder wie geh Ich da vor.

Ich bitte um eine gute Erklärung da Ich nicht der Typ bin um irgendwelche Einstellungen zu machen und sowas. Der Server ist ein Windows Server 2008 r2 und darauf läuft der IIS7.

15.07.2013 - 13:27 Uhr

Hallo Zusammen,

Ich bin gerade dabei ein Tool zu schreiben mit dem Sich eine 8 Stelliger Zufallsstring erzeugen lässt und das funktioniert eben auch. jetzt muss Ich mir aber natürlich gedanken machen wo Ich diesen dcode absichere damit wenn ein neuer Code erzeugt wird nicht der gleiche Code erzeugt werden kann wie zuvor. Das Tool wird später in einem Verzeichnis liegen wo bestimmte Leute zugriff haben und Sich den Code erstellen lassen können. Dieser Code muss immer anderst sein.

Meine Idee:

Wenn Benutzer A das Tool öffnet sieht er eine WinForm Anwendung mit einer TextBox und einem Button Erzeugen. Sobald der Benutzer A auf Erzeugen klickt wird der Code generiert und in der TextBox Angezeigt. Sollte ein Benutzer B zur gleichen Zeit das Tool öffnen bzw einen COde generieren wollen wird eine Meldung ausgegeben das Benutzer A gerade das Tool verwendet. Damit nicht beide zufällig das gleiche haben könnten. Selten aber machbar. Die Erzeugten Codes sollen in einer ArrayList gesichert werden und es muss geprüft werden vor dem Erzeugen ob diese ArrayList bereits diesen Code ernthält. Diese ArrayListe müsste natürlich auch nach dem beenden der Anwendung irgendwie gesichert werden und beim erneuten Aufruf auch wieder aufgerufen werden.

Hier ist mein Code:

private void btn_Create_Click(object sender, EventArgs e)
        {
            string code = GetCode(7);

            code = "2 - " + code;

            txt_Code.Text = code;
            lbl_status.Text = "Code wurde erstellt";

            ArrayList list = new ArrayList();

            list.Add(code);

            //serialize the code from a arraylist
        }
private void DoSerialize(ArrayList list) {

            var serializer = new BinaryFormatter();
            using (var stream = File.OpenWrite("code.dat"))
            {
                serializer.Serialize(stream, list);
            }
        }

        private ArrayList DoDeserialize() {

            var serializer = new BinaryFormatter();

            using (var stream = File.OpenRead("code.dat"))
            {
                 ArrayList list; 

                 return list = (ArrayList)serializer.Deserialize(stream);
            }
        }
23.05.2013 - 08:56 Uhr

hallo zusammen
**
Ich erzähl ein wenig über mein Projekt: LIC Reader**

Wir arbeiten im Unternehmen mit dem FLEXlm, dies ist ein Lizenzmanager. Bestimmte Lizenzen werden bereitgestellt und an Personen verteilt und wieder zurück gegeben. Mein Aufgabe ist es nun für die Personen die sich Lizenzen ziehen ein kleines Tool zu schreiben wo man sehen kann welches Modul gerade in Verwendung ist und welche Benutzer darauf zugreifen und wie viele Lizenzen ziehen. Hört Sich eigentlich alles nicht so schwer an.

**Was Ich bis jetzt geschafft habe: **

Ich erhalte von dem Lizenzserver über ein CMD Befehl eine XML zurück und speicher diese in einem String. Da diese nicht direkt mit

<?xml version="1.0" encoding="UTF-8"?>

beginnt entferne ich alle Zeichen vorher damit meine XML gültig ist. Wie auch immer. Ich lese diesen string im XmlReader ein und übergebe das Object xDoc via Xdocument.Load(...). Mit Linq filter Ich meine XML nach den Nodes und unter Nodes aus die Ich benötige. Ein Beispiel der XML werde Ich ganz am Ende bereitstellen.
Ich verwende ein TreeView in dem Dann die Nodes aufgelistet werden und desen unternodes. In meinem Fall die Module(FEATURES) und deren Benutzer(USER). Sobald Ich doppelklick auf einen der Nodes oder unternodes mache erhalte Ich den Wert in einer TextBox. Rein zum testen.

**Was Ich noch vorhabe: **

Ich möchte diesen Wert den Ich aus dem Note heraus erhalte verwenden um weitere Informationen über das Note und dessen Attribute zu erhalten. Zum Beipiel klicke Ich auf das Modul Hyperworks, dann möchte ich von der Node FEATURE mit dem Attribut NAME="Hyperworks" auch die Attribuuten VERSION="" und weitere auslesen und diese in irgendeiner form darstellen. LISTVIEW oder GRIDVIEW bzw. erst mal in einer DataTable speichern bzw array. Da bin Ich noch offen.
Zudem sollen dann auch alle benutzer augelistet werden die das Modul gerade beanspruchen.

Fazit: Ich möchte über einen Attributwert den Ich habe wie NAME="hyperworks" die weiteren attribute auslesen wenn das geht.

**Mein Code: **

Das passiert wenn ich auf auflisten klicke und Sich dann die treeview füllt

private void btnShowLicstate_Click(object sender, EventArgs e)
        {
            treeLic.Nodes.Clear(); 

            string command = "\"C:\\lmxendutil.exe\" -licstatxml -host lwserv005 -port 6200";

            string output = ExecuteCommand(command);
            string final_output = output.Substring(90, output.Length - 90);

            XmlReader xr = XmlReader.Create(new StringReader(final_output));

            

            var xDoc = XDocument.Load(xr); 
                TreeNode root = new TreeNode();
                LoadTree(xDoc.Root.Element("LICENSE_PATH"), root);
                treeLic.Nodes.Add(root);

                treeLic.ImageList = imageList1; 

        }
public void LoadTree(XElement root, TreeNode rootNode)
        {
            foreach (var e in root.Elements().Where(e => e.Attribute("NAME") != null))
            {
                var node = new TreeNode(e.Attribute("NAME").Value);


                rootNode.Nodes.Add(node);

                if (e.Name == "FEATURE")
                {
                    node.ImageIndex = 1;
                    
                }
                else if (e.Name == "USER")
                {
                    node.ImageIndex = 0;
                   
                }

                LoadTree(e, node);
            }
        }

private static string ExecuteCommand(string command)
        {
            int exitCode;
            ProcessStartInfo processInfo;
            Process process;

            processInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
            processInfo.CreateNoWindow = true;
            processInfo.UseShellExecute = false;
            processInfo.RedirectStandardError = true;
            processInfo.RedirectStandardOutput = true;

            process = Process.Start(processInfo);
           
            string output = process.StandardOutput.ReadToEnd();
            exitCode = process.ExitCode;

            process.Close();

            return output; 
        }

private void treeLic_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            try
            {
                TreeNode node = treeLic.SelectedNode;

                string selectedValue = node.Text;

                txtOutput.Text = selectedValue;
            }
            catch (Exception)
            {
                
            }

        }

**Hier ein kleiner Auschnitt aus der XML: **

<?xml version="1.0" encoding="UTF-8"?>
<LM-X STAT_VERSION="3.32">
<LICENSE_PATH TYPE="NETWORK" HOST="6200@lwserv005" SERVER_VERSION="4.4.4" UPTIME="53 day(s) 21 hour(s) 10 min(s) 50 sec(s)">
<FEATURE NAME="GlobalZoneEU" VERSION="12.0" VENDOR="ALTAIR" START="2013-03-26" END="2014-03-31" USED_LICENSES="111720" TOTAL_LICENSES="147000" SHARE="CUSTOM ,VIRTUAL">
<USER NAME="SYSTEM" HOST="LWSERV171" IP="172.16.11.115" USED_LICENSES="2000" LOGIN_TIME="2013-04-17 12:42" CHECKOUT_TIME="2013-04-17 12:42" SHARE_CUSTOM="hweuser:172.16.11.115"/>
>
<USER NAME="pbsadmin" HOST="LWSERV171" IP="172.16.11.115" USED_LICENSES="720" LOGIN_TIME="2013-04-17 12:44" CHECKOUT_TIME="2013-04-17 12:44" SHARE_CUSTOM="pbsadmin:LWSERV171:1592_40960072_1356792762_826820"/>
>
<USER NAME="Bell.M" HOST="DBG4327" IP="172.16.225.105" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 07:52" CHECKOUT_TIME="2013-05-21 07:52" SHARE_CUSTOM="Bell.M:DBG4327"/>
>
<USER NAME="Bell.M" HOST="DBG4327" IP="172.16.225.105" USED_LICENSES="6000" LOGIN_TIME="2013-05-21 07:54" CHECKOUT_TIME="2013-05-21 07:54" SHARE_CUSTOM="Bell.M:DBG4327"/>
>
<USER NAME="xu.d" HOST="DBG4970" IP="172.16.225.126" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 08:15" CHECKOUT_TIME="2013-05-21 08:15" SHARE_CUSTOM="xu.d:DBG4970"/>
>
<USER NAME="xu.d" HOST="DBG4970" IP="172.16.225.126" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 08:18" CHECKOUT_TIME="2013-05-21 08:18" SHARE_CUSTOM="xu.d:DBG4970"/>
>
<USER NAME="Bell.M" HOST="DBG4327" IP="172.16.225.105" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 08:23" CHECKOUT_TIME="2013-05-21 08:23" SHARE_CUSTOM="Bell.M:DBG4327"/>
>
<USER NAME="xu.d" HOST="SIM02" IP="172.16.32.12" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 08:36" CHECKOUT_TIME="2013-05-21 08:36" SHARE_CUSTOM="xu.d:SIM02"/>
>
<USER NAME="xu.d" HOST="SIM02" IP="172.16.32.12" USED_LICENSES="6000" LOGIN_TIME="2013-05-21 08:37" CHECKOUT_TIME="2013-05-21 08:37" SHARE_CUSTOM="xu.d:SIM02"/>
>
<USER NAME="hassan.a" HOST="DBG5199" IP="172.16.225.114" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 09:24" CHECKOUT_TIME="2013-05-21 09:24" SHARE_CUSTOM="hassan.a:DBG5199"/>
>
<USER NAME="xu.d" HOST="SIM02" IP="172.16.32.12" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 09:33" CHECKOUT_TIME="2013-05-21 09:33" SHARE_CUSTOM="xu.d:SIM02"/>
>
<USER NAME="xu.d" HOST="SIM02" IP="172.16.32.12" USED_LICENSES="6000" LOGIN_TIME="2013-05-21 09:33" CHECKOUT_TIME="2013-05-21 09:33" SHARE_CUSTOM="xu.d:SIM02"/>
>
<USER NAME="xu.d" HOST="SIM02" IP="172.16.32.12" USED_LICENSES="2000" LOGIN_TIME="2013-05-21 09:39" CHECKOUT_TIME="2013-05-21 09:39" SHARE_CUSTOM="xu.d:SIM02"/>
>
<USER NAME="zeiser-rasumak.a" HOST="DBG5200" IP="172.16.225.127" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 10:05" CHECKOUT_TIME="2013-05-21 10:05" SHARE_CUSTOM="zeiser-rasumak.a:DBG5200"/>
>
<USER NAME="xu.d" HOST="DBG4970" IP="172.16.225.126" USED_LICENSES="25000" LOGIN_TIME="2013-05-21 10:25" CHECKOUT_TIME="2013-05-21 10:25" SHARE_CUSTOM="xu.d:DBG4970"/>
>
<USER NAME="zeiser-rasumak.a" HOST="DBG5200" IP="172.16.225.127" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 11:27" CHECKOUT_TIME="2013-05-21 11:27" SHARE_CUSTOM="zeiser-rasumak.a:DBG5200"/>
>
<USER NAME="zeiser-rasumak.a" HOST="DBG5200" IP="172.16.225.127" USED_LICENSES="2000" LOGIN_TIME="2013-05-21 11:48" CHECKOUT_TIME="2013-05-21 11:48" SHARE_CUSTOM="zeiser-rasumak.a:DBG5200"/>
>
<USER NAME="zeiser-rasumak.a" HOST="DBG5200" IP="172.16.225.127" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 11:49" CHECKOUT_TIME="2013-05-21 11:49" SHARE_CUSTOM="zeiser-rasumak.a:DBG5200"/>
</FEATURE>
<FEATURE NAME="HWAIFPBS" VERSION="12.0" VENDOR="ALTAIR" START="2013-03-26" END="2014-03-31" USED_LICENSES="0" TOTAL_LICENSES="2147483647" SHARE="CUSTOM ,VIRTUAL"/>
<FEATURE NAME="HWAWPF" VERSION="12.0" VENDOR="ALTAIR" START="2013-03-26" END="2014-03-31" USED_LICENSES="0" TOTAL_LICENSES="2147483647" SHARE="CUSTOM ,VIRTUAL"/>

Ich bin leider nicht der beste im Linq bin ja auch noch am lernen (Azubi) 😃
Hilfe wäre super 😃 danke

26.03.2013 - 08:41 Uhr

Hallo Zusammen

Vielleicht ist die frage doof aber wie kann Ich den im neuen Visual Studio meine ASP.NET Anwendung für den IIS bereitstellen 😄?

Im alten habe Ich ein WebSetup Projekt hinzugefügt und das andere Projekt dort gepackt und später auf dem Server einfach installiert. jedoch gibt es diese Möglichkeit nicht mehr und Ich frage mich wie Ich das jetzt machen kann.

Wäre super wenn mir jemand bei dieser Sache helfen könnte oder Links zu Hilfeseiten schickt.

die andere Frage ist kann Ich noch meinen IIS7 vom win2008r2 server noch verwenden?

05.02.2013 - 10:50 Uhr

Hallo

Ich habe eine ASP.NET Anwendung die einen Gastzugang erstellt und der diesen Gastzugang erstellt hat soll auch die Zugangsdaten über eine email erhalten.
Ich bin halt nur am überlegen wie Ich das mit den Zugangsdaten mache.

Also Ich habe zuerst eine email versendet gehabt mit attachment und das war nach ein wenig arbeit auch ganz schön anzusehen, jedoch wenn man diesen dann in Outllook drucken wollte, wurde ein Teil davon abgeschnieden.

Dann habe Ich mich mit der Marketing Abteilung abgesprochen und diese haben mir einen Wunsch Layout geschickt als pdf.

Folgendes habe Ich mir gedacht.

  1. Ich lade zunächst eine html datei in einen string(mit system.io)
  2. diese html lasse Ich in eine PDF Datei umwandeln (mit itextSharp)
  3. Zum schluß möchte ich diese pdf an einen bestimmten empfänger senden. Das senden funktiniert. Ich müsste nur schauen wie das mit der pdf dann mache...
 using (StreamReader reader = new StreamReader(Server.MapPath("~/App_Data/zugangsmail.html"), System.Text.Encoding.Default))
                {
                   html = reader.ReadToEnd();

                    HTMLtoPdf(html);
                }

 private void HTMLtoPdf(string HTML) 
        {
            Document doc = new Document();

            PdfWriter.GetInstance(doc, new FileStream(Request.PhysicalApplicationPath + "\\test.pdf", FileMode.Create));
            doc.Open();

            HTMLWorker hw = new HTMLWorker(doc);
            hw.Parse(new StringReader(HTML));
            doc.Close();

            ShowPdf("test.pdf");
        }

        private void ShowPdf(string s)
        {
            Response.ClearContent();
            Response.ClearHeaders();
            Response.AddHeader("Content-Disposition", "inline;filename=" + s);
            Response.ContentType = "application/pdf";
            Response.WriteFile(s);
            Response.Flush();
            Response.Clear();
        }

Das Problem ist jetzt folgendes. Ich habe zwar geschafft das Ich eine PDF Datei aus einer html heraus erzeugen lasse jedoch hat diese auch keine Bilder und keinen Hintergrund. Nur einen Text der ein paar Eigenschaften hinzubekommen hat. Ich möchte eine html datei laden lassen die einen Hintergrundbild hat und andere Styles enthält. Nun ist es auch möglich mit http://www.opinionatedgeek.com/dotnet/tools/base64encode/ diese Bilder direkt in die html datei einzubinden.

Die Frage ist ob das überhaupt möglich ist. Ich habe jetzt im netz viel gesucht aber ein solches Beispiel nicht gefunden. 😦

Ich brauche hilfe

08.01.2013 - 15:28 Uhr

Hallo leute

Ich habe zunächst eine Allgemeine Frage ohne Code.

Ich habe einen Gastzugang für unsere Firma entwickelt und in der Navigation gibt es die Punkte...

Benutzer Anlegen | Aufzeichnung | Hilfe

Das ganze wird später im Intranet laufen und der Punkt Aufzeichnung soll dann nur für bestimmte Benutzer zu sehen sehen die in einem bestimmten Ordner (z.B. GastAdmin) im ActiveDirectory eingetragen sind. Die Frage ist jetzt wie macht man das) 😕 Ich habe im Internet gesucht und auch paar Sachen gefunden jedoch waren das Konfigurations Einstellungen wo man quasi Benutzer in der web.Config mitgibt aber kann man nicht direkt im AD schauen ob man in dem Ordner ist ?

Hier doch ein wenig code von meiner master seite wo meine navigation ist:

<div class="cssmenu" id='cssmenu'>
<ul>
<li class='active'><a href='UserList.aspx'><span>Benutzer</span></a></li>
<% if (true)
{ %>
<li><a href='log.aspx'><span>Aufzeichnung</span></a></li>

                   &lt;% } %&gt;                   
                   &lt;li &gt;&lt;a href=&#39;help.aspx&#39;&gt;&lt;span&gt;Hilfe&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;  
                &lt;/ul&gt;  
             &lt;/div&gt;  

Ich muss halt irgendwie vor dem laden der Seite schon sehen ob der benutzer der sich gerade daran anmeldet sich im GastAdmin Ordner befindet. Wenn ja müsste true zurück gegeben werden wenn nein dann false.

23.10.2012 - 08:37 Uhr

Hallo

Also Ich habe etwas vor und wollte gerne mal fragen ob dies Möglich wäre.

Ich habe in meinem Projekt ein DataSet erstellt mit einer DataTable, diese sind jedoch leer.
ich möchte dieses beim aller ersten Start der Webanwendung füllen lassen dazu verwende ich die Global.asax mit der methode Application_start(). Die Daten kommen aus dem ActiveDirectory und ÌCh habe mir eine Klasse gebaut die alle Benutzer daraus ermittelt und mir diese in eine DataTable ablegt. Das funktioniert auch. Nun möchte Ich aber das diese DataTable meiner Internen DataTable übergeben wird.

Das Ziel ist das Ich diese interne DataTable an meine ListView anbinden kann und evtl über Einstellungen sogar Gruppieren kann, wenn das möglich ist oder kann Ich auch die vorhandene DataTable Gruppieren? Sagen wir mal nach Standtort, den meine DataTable ist wie folgt aufgebaut Vorname | Nachname | ... | Ort

Und Ich möchte das meine ListView dann nach diesem Ort gruppiert angezeigt wird. Jedoch weiss ich nicht wie das funktionieren soll 😦 Ein Tipp in die richtige richtung oder eine beschreibung warum ich das nicht so machen sollte wäre echt super! ^^

hilfe : (

19.09.2012 - 14:41 Uhr

Also Ich habe das ganze mal mit FireBug dursucht...und mir ist eine Sache aufgefallen

In der Test Anwendung war das dialog div wie folgt definiert:

<div id="dialog" title="Liste">
<input name="txtBox" type="text" value="rettet" id="txtBox" />
<input type="submit" name="btnEdit" value="übergeben" id="btnEdit" />
</div>

und in der richtigen anwendung so:


<div id="dialogbox" title="Vertreterliste">
<input name="pVertreter" type="text" id="pVertreter" />
<input type="image" name="pImageSearch" id="pImageSearch" src="App_Theme/lupe.jpg" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;pImageSearch&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" style="height:23px;width:24px;" /><br />
<input type="submit" name="suchen" value="suchen" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;suchen&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="suchen" />
</div> 

Was ich mich frage woher holt der sich dieses onclick mit dem langen string her Oo

19.09.2012 - 14:00 Uhr

Ja werde ich tun, jedoch habe Ich einfach mal eine testanwendung geschrieben in der Ich über einen Button das Dialogfenster öffne und in diesem Dialogfenster einen Text übergeben kann. In der testanwendung funktioniert dies einwandfrei 😕

Da fragt man sich waru es in der einen Anednung funktioniert und in der anderen wieder nicht...obwohl die beiden vom Aufbau gleich sind.

19.09.2012 - 11:19 Uhr

Ja und was gibt es für eine Möglichkeit das zu machen was Ich vorhabe...Ich bin ja bestimmt nicht der erste der soetwas tut und warum verschleiert es? Oo das hör ich zum ersten mal..

19.09.2012 - 10:08 Uhr

Hallo

Ich versuche zurzeit mit ASP.NEt und jQuery Dialog zu arbeiten. In meinem Dialog möchte ich Webcontrols verwenden. Wie eine TextBox und einen Button. Wenn Ich auf den Button klicke soll etwas in die textBox geschrieben werden. (das soll nur zum Beispiel dienen...in meiner aufgabe habe ich noch eine ListView drinne und die soll dann mit Mitarbeiter gefüllt werden die man findet)

Das Dialogfenster öffnet auch und die Webcotrols werden auch richtig angezeigt. jedoch kann Ich den Code nicht ausführen wenn ich auf eins der Webcontrols klicke.

Hier mein Code (Ist da irgendwie was falsch Oo)

aspx: (jQuery Code)

<script type="text/javascript" language="javascript">

        $(document).ready(function () {
            $("#dialogbox").dialog({
                autoOpen: false,
                modal: true,
                resizable: false,
                buttons: {
                    "OK": function () {
                        $(this).dialog("close");
                    },
                    "Cancel": function () {
                        $(this).dialog("close");
                    }
                }
            });

            $("#dialogbox").parent().appendTo($("form:first"));

            $("#imgVertreter").click(function () {
                $("#dialogbox").dialog("open");
                $("#dialogbox").parent().appendTo($("form:first"));
                return false;
            });

            
        }); 

    </script>

ASPX (mein Dialog div Bereich)

<form id="form" runat="server">

    <div id="dialogbox" title="Gesammte Vertreterliste" runat="server">
        <asp:TextBox ID="pVertreter" runat="server"></asp:TextBox>
        <asp:ImageButton ID="pImageSearch" runat="server" 
        ImageUrl="~/App_Theme/lupe.jpg" Height="23px" Width="24px" 
            onclick="pImageSearch_Click" /><br />
            <asp:Button ID="suchen" Text="suchen" runat="server" 
            onclick="suchen_Click" />
        <hr />
        <asp:ListView runat="server" ID="ListView">
        
            ...
        
        </asp:ListView>

    </div>

...

My C# Code


protected void suchen_Click(object sender, EventArgs e)
        {
            pVertreter.Text = "ok";

            
        }

Ich verstehe nicht was Ich falsch mache

18.09.2012 - 13:50 Uhr

Hallo

Ich arbeite zurzeit mit ASP.NEt und jQuery. In meiner Anwendung verwende Ich ein Accordion von jQuery. Ich habe meine Anwendung soweit fertig und es tut auch das was es tun soll, jedoch funktioniert es bei einem Mitarbeiter nicht so wie es funktionieren soll. Dieser Mitarbeiter verwendet IE8 und wenn er von einem Accordion Tab zum anderen wechselt und wieder zurück hängt SIch der Browser auf Oo

Zudem ist mir aufgefallen das die Pfeile im Accordion irgendwie verschwunden sind. 😦

Kann mir jemand erklären woran das liegen könnte.

Hier ist ein script (nur der für jquery)

<script type="text/javascript" language="javascript">

        function SetupAccordion() {
            $("#accordion").accordion({
                autoHeight: false,
                navigation: true

            });
        }
        $(document).ready(function () {
            SetupAccordion();
            if (typeof Sys.WebForms != 'undefined') {
                Sys.WebForms.PageRequestManager.getInstance().add_endRequest(SetupAccordion);
            }
        });   

    </script>

Ich habe nur zwei Tabs im Accordion, in jedem Tab ist ein HTMLExtender von AjaxControlToolKit drinne der Informationen anzeigt die aus anderen Dateien entnommen werden.

27.08.2012 - 15:01 Uhr

Hallo

Ich verwende in meiner ASP.NET Anwendung eine ListView mit den Spalten [Nachname][Vorname] usw...
Diese ListView listet Mitarbeiter auf die man vorher über eine maske sucht. Das heißt die Liste wird erst erzeugt wenn der Benutzer auf Suchen klickt. Jetzt möchte Ich über die header texte von der ListView wie Nachname und Vorname, die ListView danach sortieren lassen. Ich habe mir viele Tutorials durchgelesen undauch die msdn angeschaut. Jedoch funktioniert kein beispiel wirklich 😦 Ich versuche zurzeit über das ListView Attribut OnSorting="myListView_Sorting" zu sortieren.

Hier ist meine aspx Seite (Nur die ListView Layouttemplate):

 <asp:ListView runat="server" ID="myListView" OnItemCommand="myListView_ItemCommand" OnSelectedIndexChanging="myListView_SelectedIndexChanging" OnSorting="myListView_Sorting">

        <LayoutTemplate>
            <table id="UserTable" runat="server" border="0" width="800" cellpadding="0" cellspacing="0">
                <tr style="background-color:#E5E5FE" class="TableClass">
                    <th align="left" id="th4" runat="server"><asp:LinkButton ID="lnkNachname" CommandArgument="Nachname" CommandName="Sort" runat="server" >id_Nachname</asp:LinkButton></th>
                    <th align="left" id="th3" runat="server"><asp:LinkButton ID="lnkVorname"  CommandArgument="Vorname" CommandName="Sort" runat="server" >id_Vorname</asp:LinkButton></th>
                    <th align="left" id="th5" runat="server"><asp:Label ID="lnkTelefon" runat="server" >id_Telefon</asp:Label></th>
                    <th align="left" id="th6" runat="server"><asp:Label ID="lnkAbteilung" runat="server">id_Abteilung</asp:Label></th>
                    <th align="left" id="th2" runat="server"><asp:Label ID="lnkemail" runat="server" >id_Email</asp:Label></th> 
                </tr>
                <tr runat="server" id="ItemPlaceholder">
                </tr>
            </table>
        </LayoutTemplate>

...

<Itemtemplate> 

....

Mein Cs Code dazu:

protected void myListView_Sorting(object sender, ListViewSortEventArgs e)
        {
            if (e.SortDirection == System.Web.UI.WebControls.SortDirection.Ascending)
            {
                System.Web.UI.WebControls.SortDirection sortdir = System.Web.UI.WebControls.SortDirection.Descending;
                myListView.Sort(e.SortExpression, sortdir);
            }
            else
            {
                System.Web.UI.WebControls.SortDirection sortdir = System.Web.UI.WebControls.SortDirection.Ascending;
                myListView.Sort(e.SortExpression, sortdir);

            }
            
        }

Ich hab mir auch vllt mal gedacht das ganze in ein DataSet zu importieren und dann zu sortieren und wieder ausgeben zu lassen. Wie genau kann Ich den jetzt einfach und schnell eine ListView sortieren lassen ...das kann doch nicht so schwer sein 😦

15.08.2012 - 08:27 Uhr

Ich gebe Abt allerdings recht, dass man für sowas keinen Iframe mehr nehmen sollte. Lieber die Daten per Ajax nachladen und in einem DIV anzeigen, das Du über die Seite legst. Beispiele dafür gibt's im Internet jede Menge.

Ja genau so habe Ich es jetzt auch gemacht... danke 😛

13.08.2012 - 10:04 Uhr

Wenn Ich das Click Event aus dem jQuery Code rausnehme funktioniert es aber nicht mehr 😦

Welche anderen Möglichkeiten habe Ich den um ein Vorhaben wie meins umzusetzen?

13.08.2012 - 09:33 Uhr

Hallo

Ich habe eine ASP.NET Anwendung mit zwei Formularen geschrieben. In dem ersten Formular kann ein Benutzer über eine TextBox nach anderen benutzern suchen und in einer ListView auflisten. Die ListView wird ersz erzeugt sobald der benutzer auf Suchen klickt. Die ListView baut sich dann auf und besitzt 5 Spalten und die Zeilen werden dann nach Anzahl gefundener Benutzer erzeugt. Zu den Spalten gehören (Benutzer,eMail,Vorname,Nachname und telefon) in jeder Spalte werden dann LinkButtons erzeugt mit dennen man dann mehr Informationen über einen Benutzer erfahren kann. Diese Informationen werden auf dem zweiten Formular angezeigt.

Jedoch möchte Ich das zweite Formular in einem Dialog anzeigen lassen, Ich dachte da an einen Iframe. Dazu habe Ich mir jQuery angesehen und den UI Modal Dialog. Ich habe es auch geschafft einen Dialog mit dem zweiten Formular zu erzeugen, doch geht das nur wenn Ich über einen festen Button den Dialog aufrufe und Ich möchte das dieser Dialog Sich öffnet wenn Ich eines der LinkButtons drücke die erst zur Laufzeit erzeugt werden.

Meine haupt ASPX Seite (benutzerListe.aspx)

<script src="Scripte/jquery-1.7.2.js" type="text/javascript"></script>
    <script type="text/javascript" src="Scripte/jquery-ui-1.8.22.custom.min.js" ></script>

     <script type="text/javascript">

         $(document).ready(function () {
             $("#Button1_Command").click(function (event) {

                 $('#Button1_Command').live('click', function (e) {
                     e.preventDefault();
                     var page = $(this).attr("href")
                     var pagetitle = $(this).attr("title")
                     var $dialog = $('<div></div>')
                .html('<iframe style="border: 0px; " src="Benutzer.aspx" width="100%" height="100%"></iframe>')
                .dialog({
                    autoOpen: false,
                    modal: true,
                    height: 500,
                    width: 500,
                    title: pagetitle
                });
                     $dialog.dialog('open');
                 });

             });
         });

    </script>

     <link href="~/App_Theme/BenutzerListeStyle.css" type="text/css" rel="Stylesheet" />
     <link href="App_Theme/jquery-ui-1.8.22.custom.css" type="text/css" rel="Stylesheet" />

    <style type="text/css">
        #SuchTabelle
        {
            width: 587px;
        }
    </style>

</head>
<body>
    <form id="form1" runat="server">

    <div class="header">
        <table id="SuchTabelle" runat="server" border="0">

            <tr>
                <th><asp:Label ID="id_SearchUser" runat="server" Text="lblSearchUser"></asp:Label></th>
                <th><asp:TextBox ID="txtBenutzer" runat="server" Width="250px"></asp:TextBox></th>

            </tr>
            <tr>
                <th><asp:Label ID="id_location" runat="server" Text="lblLocation"></asp:Label></th>
                <th><asp:DropDownList ID="dropWerk" runat="server" Width="250px" /></th>
                <th><asp:Button ID="Button2" runat="server" Text="Suchen" 
                                onclick="btnBenutzerSuchen_Click" Width="219px" /></th>
            </tr>

        </table>

        <div id="bild">
            <asp:Image runat="server" ImageUrl="~/App_Theme/lw_logo.jpg" Height="58px" 
                Width="277px" />
        </div>

      </div>

      <div class="bodyList">


        <asp:ListView runat="server" ID="myListView">

        <LayoutTemplate>
            <table id="UserTable" runat="server" border="0" width="800" cellpadding="0" cellspacing="0">
                <tr style="background-color:#E5E5FE" class="TableClass">
                    <th id="th1" runat="server"><asp:LinkButton ID="lnkBenutzer" runat="server" >id_Benutzer</asp:LinkButton></th>
                    <th id="th2" runat="server"><asp:LinkButton ID="lnkemail" runat="server" >id_Email</asp:LinkButton></th>
                    <th id="th3" runat="server"><asp:LinkButton ID="lnkVorname" runat="server" >id_Vorname</asp:LinkButton></th>
                    <th id="th4" runat="server"><asp:LinkButton ID="lnkNachname" runat="server" >id_Nachname</asp:LinkButton></th>
                    <th id="th5" runat="server"><asp:LinkButton ID="lnkTelefon" runat="server" >id_Telefon</asp:LinkButton></th>
                </tr>
                <tr runat="server" id="ItemPlaceholder">
                </tr>
            </table>
        </LayoutTemplate>

        <ItemTemplate>

            <tr class="TableClass">    
                <td align="left" ><asp:LinkButton CssClass="MyLink" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' ID="Label1" Text='<%# Eval("Benutzername") %>' runat="server" /></td>
                <td align="left"><asp:LinkButton CssClass="MyLink" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' ID="Label2" Text='<%# Eval("eMail") %>' runat="server" /></td>
                <td align="left"><asp:LinkButton CssClass="MyLink" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' ID="Label3" Text='<%# Eval("Vorname") %>' runat="server" /></td>
                <td align="left"><asp:LinkButton CssClass="MyLink" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' ID="Label4" Text='<%# Eval("Nachname") %>' runat="server" /></td>
                <td align="left"><asp:LinkButton CssClass="MyLink" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' ID="Label5" Text='<%# Eval("Telefonnummer") %>' runat="server" /></td>

              <td align="left"><asp:Label ID="Label6" Text='<%# Eval("GUID") %>' runat="server" Visible="False" /></td>

            </tr>

        </ItemTemplate>

        <AlternatingItemTemplate>

            <tr class="TableClass"> 

                <td align="left" ><asp:LinkButton CssClass="MyLink" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' ID="Label1" Text='<%# Eval("Benutzername") %>' runat="server" /></td>
                <td align="left"><asp:LinkButton CssClass="MyLink" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' ID="Label2" Text='<%# Eval("eMail") %>' runat="server" /></td>
                <td align="left"><asp:LinkButton CssClass="MyLink" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' ID="Label3" Text='<%# Eval("Vorname") %>' runat="server" /></td>
                <td align="left"><asp:LinkButton CssClass="MyLink" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' ID="Label4" Text='<%# Eval("Nachname") %>' runat="server" /></td>
                <td align="left"><asp:LinkButton CssClass="MyLink" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' ID="Label5" Text='<%# Eval("Telefonnummer") %>' runat="server" /></td>

                <td align="left"><asp:Label ID="Label6" Text='<%# Eval("GUID") %>' runat="server" Visible="False" /></td>

            </tr>

        </AlternatingItemTemplate>

        </asp:ListView>

mein CS Code wenn Ich auf einen LinkButton klicke

protected void Button1_Command(object sender, CommandEventArgs e)
        {
            if (e.CommandName == "Select")
            {
                //Der Index der Zeile wird ermitellt
                int index = Convert.ToInt32(e.CommandArgument);



                //Der Inhalt (GUID[Unsichtbar]) wird aus der zeile mit dem Index herausgezogen und übergeben
                Label lb = (Label)myListView.Items[index].FindControl("Label6");

                //Der GUID, Benutzer-Nachname und das Werk werden an eine Session übergeben
                Session["UserID"] = lb.Text;
                Session["SearchUser"] = txtBenutzer.Text;
                Session["DropDownValue"] = dropWerk.SelectedValue;

                //Es wird eine neue Webform geöffnet
                Response.Redirect("Benutzer.aspx");

            }

        }

Was mache Ich falsch 😦

08.08.2012 - 10:45 Uhr

mhh ok danke für diese Information 😃

Ich schau mich dann mal schlau ...das kann schon etwas dauern 😛

08.08.2012 - 10:21 Uhr

Hallo

Ich habe eine ASP.NET Anwendung und diese besitzt zwei Webforms. Jedes der beiden WebForms haben Steuerelemente und Methoden die etwas auswerten. Jetzt habe Ich die Aufgabe die zweite WebForm durch eine Art Dialogfenster zu ersetzen.

Zunächst mal ganz kurz was mein Program macht. Über das erste Formular "BenutzerListe.aspx" kann man einen benutzer auswählen und über den Button "Anzeigen" mehr über diesen in einem zweiten Formular erfahren "Benutzer.aspx". Jetzt soll das "Benutzer.aspx" verschwinden und lieber ein Dialog erscheinen wo man die Angaben sieht und über einen Button Ändern oder zurück zur "BenutzerListe.aspx" gelangen kann.

Ich dachte da an soetwas wie jQuery Modal Dialog. Dieser hat eigentlich genau alles das was Ich brauche...doch bin Ich mit jQuery nicht so vertraut (noch mitten im lernfieber) und wollte daher fragen ob man die Steuerelemente auch in C# programmieren kann. Also ob Ich alles in C# machen kann, weild dann müsste Ich nur meinen Code den Ich bereits für die zweite Webform habe in das Dialog übertragen. Wäre natürlich nicht so gut wenn ich das ganze dann mit javascript machen müsste, denn da bin ich nicht so fit drin 😦

w.t.

23.07.2012 - 14:18 Uhr

AChso ...ja ich habe jetzt das Problem gelöst 😃

ASPX:

<td align="left"><asp:Button ID="Button1" Text="Anzeigen" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>'  runat="server" /></td>

CS:

protected void Button1_Command(object sender, CommandEventArgs e)
        {
            if (e.CommandName == "Select")
            {
               int index = Convert.ToInt32(e.CommandArgument);
               
                Label lb = (Label)myListView.Items[index].FindControl("Label2");

                string email = lb.Text;

                Session["email"] = email;

                Response.Redirect("Benutzer.aspx");

            }

        }

Ich habe den Index mit CommandArgument='<%# Container.DataItemIndex %>' ermitellt und dann im Codebehind abgefragt 😛

Vllt nicht die beste methode aber es funktioniert erst mal und Ich kann weiter machen 😃 trotzdem danke für deine Mühe ! 😃

23.07.2012 - 13:33 Uhr

Meinst du das?

protected void Button1_Command(object sender, CommandEventArgs e)
        {
            if (e.CommandName == "Select")
            {
                //Gibt immer -1 zurück
                int selectedIndex = myListView.SelectedIndex;

                
                Label lb = (Label)myListView.Items[selectedIndex].FindControl("Label2");

                string email = lb.Text;

                Session["email"] = email;

                Response.Redirect("Benutzer.aspx");

            }

        }

Weil wenn ja geht das nicht habe Ich versucht ...Ich versth halt nicht warum das immer die -1 zurück gibt 😕

23.07.2012 - 12:49 Uhr

ich hab dazu einige Fragen...

Es ging mir natürlich erst nur darum das es überhaupt funktioniert, aber jetzt brauch Ich wie du schon sagtest den richtigen Index.

Ich habe meine ASPX Seite ein wenig geändert:

...

 <ItemTemplate>
   
            <tr runat="server"> 
                
                <td align="left" ><asp:Label ID="Label1" Text='<%# Eval("Benutzer") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label2" Text='<%# Eval("eMail") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label3" Text='<%# Eval("Vorname") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label4" Text='<%# Eval("Nachname") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label5" Text='<%# Eval("Telefon") %>' runat="server" /></td>

             <td align="left"><asp:LinkButton runat="server" Text="Anzeigen" CommandName="Anzeigen" OnCommand="ListView1_ItemCommand"></asp:LinkButton></td>
               
            </tr>
        
        </ItemTemplate>

...

Dazu die Cs Datei:

...

protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
        {
            if (e.CommandName == "Anzeigen")
            {
                Label lbText = (Label)e.Item.FindControl("Label2");

               string email = lbText.Text;

               Session["email"] = email;

               Response.Redirect("Benutzer.aspx");

            }
        }

...

Ich bekomme aber immer wieder den Fehler: CS0123: Keine Überladung für "ListView1_ItemCommand" stimmt mit dem Delegaten "System.Web.UI.WebControls.CommandEventHandler" überein.

Wie gehe Ich den vor wenn ich das realisieren möchte was du mir gesagt hast mit dem CommandArgument 😕

und ist es egal ob man das ganze mit einem Button oder einem LinkButton macht?

21.07.2012 - 22:00 Uhr

Ok Ich glaube Ich habe eine Lösung...kann die aber erst am montag testen da Ich daheim keine AD Datenbank besitze..außer ich baue mir schnell eine Anwendung zum testen 😛

protected void Button1_Command(object sender, CommandEventArgs e)
        {
            if (e.CommandName == "Anzeigen")
            {
                // User in the Line

                Label lb = (Label)myListView.Items[1].FindControl("Label2");

                   Session["email"] = email; 

                Response.Redirect("Benutzer.aspx");

            }

EDIT: Hab noch was vergessen^^

string email = lb.Text;

21.07.2012 - 18:13 Uhr

Wie erhalte Ich jetzt die Informationen von dieser Reihe in der, der Button war. Zum Beispiel wenn Ich die email haben möchte von dem ausgewählten Benutzer.
Wie kann Ich das in einen String übergben?

Ich denke man benötigt den Index von der Zeile in der der Button war oder so ion der Art.

 protected void Button1_Command(object sender, CommandEventArgs e)
        {
            if (e.CommandName == "Anzeigen")
            {
               int selectedIndex = myListView.SelectedIndex;

             //Das geht nicht ;(
               
              string SessionObject =myListView.Items[selectedIndex].SubItems[1].Text);

//Übergae von eMail oder einem anderen Parameter 

Session["eMail"] = SessionObejct;
                Response.Redirect("Benutzer.aspx");

            }
}

die Übergabe kann man auch über QueryString übergeben jedoch ist es erst mal nur wichtig das ich irgendwas übergebe 😦

20.07.2012 - 14:52 Uhr

Was ist den daran falsch Oo ?

aspx

<asp:Button ID="Button1" Text="Anzeigen" OnCommand="Button1_Command" CommandName="Anzeigen" runat="server" />

cs

protected void Button1_Command(object sender, ListViewCommandEventArgs e)
        {
            if (e.CommandName == "Anzeigen")
            {
                Response.Redirect("Benutzer.aspx"); 

            }

        }
20.07.2012 - 14:02 Uhr

Das Problem ist ja nicht die Übegabe und das es ein onClick besitzt weiss ich auch^^ Nur ist es so das Ich nicht weiss wie Ich auf ein Ereignis reagieren kann wenn die Buttons erst erzeugt werden wenn die ListView gefüllt wird 😕

Ist ja nicht so als hätte Ich es nicht versucht.. z.B.

aspx:

 <td align="left"><asp:Button ID="Button1" OnCommand="Button1_Command" CommandArgument='<%# eval("ID") %>' CommandName="Anzeigen" runat="server" /></td>

cs:

void Button1_Command(object sender, CommandEventArgs e)
        {
            if (e.CommandName == "Anzeigen")
            {
                string sID = e.CommandArgument.ToString();
                int id = 0;
                int.TryParse(sID, out id);

                if (id > 0)
                {
                    //
                }
            }
        }

und bekomme dann folgende Fehlermeldung:

ASP.benutzerliste_aspx" enthält keine Definition für "Button1_Command", und es konnte keine Erweiterungsmethode "Button1_Command" gefunden werden, die ein erstes Argument vom Typ "ASP.benutzerliste_aspx" akzeptiert (Fehlt eine Using-Direktive oder ein Assemblyverweis?).

20.07.2012 - 13:38 Uhr

Hi

Zu Meinem Programm: Ein benutzer kann in einer textBox einen Nachnamen eingeben bzw teilstrings davon und es wird in einer ListView alle Benutzer aufgelistet die diesen TeilString enthalten.

Nun wird in der ListView für jeden Benutzer eine Reihe erstellt in der man die eMail, Den Benutzer, Vorname,Nachname und auch die Telefonnummer sehen kann, dazu kommt noch das jede Reihe einen Button"Anzeigen erhält".

Wenn man auf diesen Button drückt soll man auf eine andere WebForm Oberfläche geleitet werden mit einer string Übergabe in einer Session. Jedoch weiss Ich nicht wie ich ein solches Event erzeugen kann wenn die Buttons erst zur laufzeit erzeugt werden. 😕

In meinem Event muss daher die Id oder die eMail mit übergeben werden...Ich dachte eigentlich an soetwas wie ...

Session["ID"] = // Die Id von dem benutzer in der Reihe vllt durch den Index :/
Response.Redirect(..andere webform.);

Hier ist mein Code:

ASPX:

<asp:ListView runat="server" ID="myListView">

        <LayoutTemplate>
            <table id="UserTable" runat="server" border="0" cellspacing="10" cellpadding="5">
                <tr id="Tr1" runat="server">
                    <th id="Th1" runat="server">Benutzer</th>
                    <th id="Th2" runat="server">eMail</th>
                    <th id="Th3" runat="server">Vorname</th>
                    <th id="Th4" runat="server">Nachname</th>
                    <th id="Th5" runat="server">Telefon</th>
                </tr>
                <tr runat="server" id="ItemPlaceholder">
                </tr>
            </table>
        </LayoutTemplate>

        <ItemTemplate>
   
            <tr runat="server"> 
                
                <td align="left" ><asp:Label ID="Label1" Text='<%# Eval("Benutzer") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label2" Text='<%# Eval("eMail") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label3" Text='<%# Eval("Vorname") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label4" Text='<%# Eval("Nachname") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label5" Text='<%# Eval("Telefon") %>' runat="server" /></td>
                <td align="left"><asp:Button ID="Button1" Text ="Anzeigen" runat="server" /></td>
               
            </tr>
        
        </ItemTemplate>

        </asp:ListView>

Beim Button kann man das onClick Ereignis übergen...aber Ich weiss leider nicht wie Ich das dazugehörige Event erstellen kann 😦

Hilfe

20.07.2012 - 07:56 Uhr

Der Anwender könnte mit dem Wissen dieser Lücke und genug Rechten das Active Directory manipulieren; und zwar kräftig.

Ohnehin sollte man auf die von Dir verwendete, veraltete Variante vom AD über den DirectoryEntry völlig verzichten und stattdessen den System.DirectoryServices.AccountManagement-Namespace nutzen.
Er ist nicht nur performanter, sondern auch sicherer, und einfacher zu implementieren.

Danke Ich werde mir das mal anschauen 😃

19.07.2012 - 11:27 Uhr

Ja das stimmt schon nur das Ich das ganze lieber in einer ListView haben möchte 😕

ich muss mich wohl noch ein wenig besser in die ListFView reinarbeiten...aber wenn du eine gute Seite hättes wo das recht gut erklärt wird, wäre das super...ansonsten muss Ich mich durch die msdn Doku durcharbeiten 😛

19.07.2012 - 11:04 Uhr

Hallo,

Ich arbeite zur Zeit mit einer ListBox, jedoch gefällt mir das ListView Steuerelement besser und dahaer habe ich mich da ein wenig durchgelesen. Jedoch habe Ich schon ein Problem beim hinzufügen von Datensätzen in die ListView.

Ich möchte eine Art Tabelle haben mit 4 Spalten ( eMail, Benutzer, Nachname/Vorname, Telefonnummer) und die ListView wird mit Datensätzen geüllt wenn Ich über eine textBox nach einem benutzer Suche und alle mit gleichen zeichen sollen mir dann aufgelistet werden, dass heißt für jeden Fund wird eine neue zeile hinzugefügt. Am Ende will ich dann alle Funde sehen und wenn Ich eins anwähle und auf einen Button "Benutzer anzeigen" drücke sird auf eine Extra ASPX Seite verwiesen wo Ich dann genauere Daten einsehen kann. Das ganze entnimmt dieser aus dem Active Directory 😛

So habe ich das Steuerelement erzeugt...

<asp:ListView runat="server" ID="ListView">
  <LayoutTemplate>
    <table>
      <thead>
        <tr>
          <th>eMail</th>
          <th>Benutzer</th>
          <th>Nachname, Vorname</th>
          <th>Telefonnummer</th>
        </tr>
      </thead>
      <tbody>
        <asp:PlaceHolder runat="server" ID="itemPlaceholder" />
      </tbody>
    </table>

  </LayoutTemplate>

  <ItemTemplate>
   
  </ItemTemplate>
</asp:ListView>

Mit der Listbox konnte Ich einfach durch

lboxBenutzer.Items.Add(new ListItem(...));

eine neue Zeile hinzufügen. Aber wie funktioniert das ganze in einer ListView, hab damit noch nicht viel gemacht und als Ich danach gesucht habe, hat es nicht funktioniert 😦

ListView.Items.Add(?);

Dieser erwartet als Parameter ein ListViewDataItem 😕 )

Wenn mir hier jemand helfen könnte wäre das Super : )

19.07.2012 - 10:40 Uhr

Das Codedesign wird noch mal so oder so überarbeitet, nur wenn ich etwas neues mache mach Ich das dann immer erst direkt und später baue ich das in extra Funktionen um bzw bau diese Funktionen in meine eigene Klassenbibliothek rein^^

Ich weiss jetzt was Ich falsch gemacht hatte 😛

Hier meine Lösung:

protected void btnBenutzerSuchen_Click(object sender, EventArgs e)
        {
            lboxBenutzer.Items.Clear(); 
          
           DirectoryEntry Entry =  new DirectoryEntry("LDAP://" + "Domain");

           string filter = "(&(objectClass=user)(objectCategory=person)(cn=" + txtBenutzer.Text + "*))";

          DirectorySearcher Searcher = new DirectorySearcher(Entry, filter);

          foreach (SearchResult res in Searcher.FindAll())
          {
              string Benutzer = GetProperty(res, "sAMAccountName");
              string eMail = GetProperty(res, "mail");
              string Vorname = GetProperty(res, "givenName");
              string Nachname = GetProperty(res, "sn");
             string Telefon = GetProperty(res, "telephoneNumber");

              lboxBenutzer.Items.Add(new ListItem(eMail + " | " + Benutzer + " | " + Nachname + ", " + Vorname + " | " + Telefon));
          }

Wie gesagt das Design wird noch geändert...Ich muss nur noch paar Sachen testen 😃

Ich schau mir gerade die ListView Klasse an 😛

trotzdem danke 😃

18.07.2012 - 15:08 Uhr

Hallo

Ich bin gerade dabei eine ASP.NET Anwendung zu erstellen, jedoch habe ich nicht mit ASP.NEt Probleme sondern mit der Programmierung selbst. Mein Ziel ist es eine aspx Seite zu bauen, wo Ich in ein Eingabe Feld zum beispiel "han" eingeben kann und dann über einen Button mir alle benutzer aus dem Active Directory anzeigen lassen kann die so heißen oder diese Zeichen beinhalten.

Ich lasse mir Benutzer in einer ListBox anzeigen und erzeuge dann bei jedem User der gefunden wurde eine ListItem mit dem Namen.

Nun hab Ich es geschafft einen Benutzer anzeigen zu lassen z.B. Auch wenn ich nur han eingebe findet er diesen.

Ich habe meinen Code ein wenig umgebaut und frage mich nun warum das nicht geht und wie es gehen muss 😕

protected void btnBenutzerSuchen_Click(object sender, EventArgs e)
        {
            DirectoryEntry Entry = null;
            DirectorySearcher Searcher = null;
            SearchResult result = null;

            string filter = "(&(objectClass=user)(objectCategory=person)(cn=" + txtBenutzer.Text + "*))";

            //SearchResult result = GetEntryOfLDAP("Domain", txtBenutzer.Text);

            
            try
            {
                string User = GetProperty(result, "givenName");

                 Entry = new DirectoryEntry("LDAP://" + "LWDOMAIN");
                 Searcher = new DirectorySearcher(Entry, filter);

                     using (SearchResultCollection results = Searcher.FindAll())
                     {
                         foreach (SearchResult sr in results)
                         {

                           User =  GetProperty(sr, "givenName");

                           lboxBenutzer.Items.Add(new ListItem(User));
                            
                         }
                     }

            }
            catch (Exception)
            {
                lblBenutzer.Text = "Benutzer nicht gefunden";               
            }
            finally
            {
                result = null; 
            }

            
        }
public static string GetProperty(SearchResult searchResult, string PropertyName)
        {
            
                if (searchResult.Properties.Contains(PropertyName))
                {
                    return searchResult.Properties[PropertyName][0].ToString();
                }
                else
                { 
                    return string.Empty;
                }
        
        }

Was mache Ich falsch ...vllt bin Ich auch einfach nur Blind und sehe denn Fehler nicht 😦

16.07.2012 - 09:33 Uhr

Hallo

Kann man wenn man über einen (local System) Windows Dienst eine Exe mit Parametern ausführt und diese Exe (Konsolenprogram) Sich mit einem WebService verbindet und eine Webmethode ausführt um den am WebService angemeldeten Benutzer zu ermitelln, Sich als der benutzer auch zurückgeben zu lassen bzw diese Webmethode auch als bestimmten Benutzer ausführen?

Den soweit wie Ich weiss muss man dem Windows Dienst schon sagen als welcher Nutzer dieser agieren soll, jedoch werde Ich die Möglichkeit nicht haben einen Benutzer mitzugeben sondern kann diesen nur als local System verwendet.

Wenn Ich die Exe ohne den Windows Dienst ausführe erhalte ich auch den richtigen Benutzer z.B Domain/P.Musternachname zurück jedoch wenn Ich die Exe mit dem Dienst starte folgendes: Domain/Computername.

Ich brauche eine Möglichkeit das ganze in der KonsolenAnwendung die auf den Webservice zugreift dies zu ermöglichen. Ich muss irgendwie dem Webservice sagen das ich als Benutzer P.Musternachname agieren möchte auch wenn ich die Exe über den Dienst starte.

Ich brauche hilfe 😦

16.07.2012 - 08:41 Uhr

hi

myWebServices = new WebServices.MyMainService_Binding();  
myWebServices.UseDefaultCredentials = Webservice.UseDefaultCredentials;  

Das versteh ich nicht so ganz Ich bekomme nur einen Fehler angezeigt das myWebService nicht im aktuellen Kontext vorhanden sei 😕 was hat es den mit dem MyMainService_Binding() auf sich Oo

Vllt bin Ich aber auch grad nur neben der Mütze um das zu verstehen...

11.07.2012 - 13:52 Uhr

ich bin zwar gerade im Urlaub 😛 aber ich danke euch für diese Hilfe, Ich schaue mir das ganze mal an und teste es mal ^^

07.07.2012 - 16:37 Uhr

Der Dienst läuft als Local System... Also auf meinem Client scheint es zu funktionieren... nur wenn ich den Dienst in Windows Server 2008 R2 starte, tut es nicht... du würdest keinen Windows Dienst powershell scripte starten lassen, wie würdest du es dann lösen?

Also Ich muss zwar nicht auf die USV reagieren aber ich habe einen Webservice der dies macht. Das ganze läst sich aber nicht so einfach realisieren da du das im IIS mit der Authentiefizierung richtig einstellen musst. Eine andere möglichkeit wäre es dem Dienst nicht als local system laufen zu lassen und dem dienst einen benutzer mitzugeben der das darf, ansonsten kannst du nicht auf anderen Rechnern etwas ausführen, da dir die Rechte fehlen.

Ich stehe aber auch vor dem Problem über einen local system dienst eine exe zu starten und dieser wieederum greift auf einen webservice im iis zu der scripte ausführt....wenn ich mehr weiss kann ich dir evtl auch weiterhelfen.

Aber Ich wünsch dir viel glück 😉

07.07.2012 - 16:30 Uhr

Das heißt ich kann ein Impersonate im Webservice machen?

06.07.2012 - 14:51 Uhr

hallo Zusammen

Ich habe einen Windows Dienst (local System) erstellt der nur zu testzwecken läuft. Dieser soll eine exe (Konsolenanwendung) starten die wiederrum eine Benutzerabfrage bei einem Webservice der im IIS läuft macht, dieser liegt natürlich auf einem anderen Rechner.

Nun habe ich festgestellt, wenn Ich über die Konsolenanwendung die Webmethode aufrufe um meinen dort angelemdeten Benutzer zu ermitteln..bekomme ich meinen benutzer zurück (So soll es auch sein)...

wenn Ich aber den Dienst starte bekomme ich den Rechner selbst nur zurück...

Die Frage ist nun die, gibt es eine Möglichkeit aus einem localsystem dienst eine exe zu starten so das diese als mein Benutzer agiert? Impersonate in der Konsolenanwendung und im dienst selbst(nur getestet) bringt nichts und gibt mir nur die folgende meldung zurück...

Fehlermeldung:
Fehler bei der Anforderung mit HTTP-Status 401: Unauthorized.

😦

wenn mir jemand einen Tipp geben kann oder mir einen andere Lösung nennen könnte wäre ich sehr sehr dankbar 😃 Aber der Dienst muss local system bleiben!

06.07.2012 - 14:43 Uhr

Ich würde nicht über einen Windows Dienst Powershell Scripte starten...als welcher Benutzer agiert den der Dienst also ich meine damit zum Beispiel als Rechner selbst (local sysstem)? Weil sonst hast du einfach wohl keine berechtigungen das Script auszuführen...
Man kann einem Dienst auch einen Benutzer übergeben als dessen er agieren soll, das wäre eine Möglichkeit

gruß w.t.

03.07.2012 - 13:31 Uhr

Danke für eure Vorschläge ...aber Ich habe jetzt ein NummericUpDown Steuerelement verwendet und hab es zwischen 1 und 10 festgelegt. In einer Extra funktion bearbeite ich einfach die Eingabe so das es am Ende passt 😛

02.07.2012 - 13:07 Uhr

Hallo Zusammen

Ich habe ein Program geschrieben das eine bestimmte txt Datei einlesen tut und das Program läuft auf einem anderen Rechner ununterbrochen....daher dachte ich mir ich bastel mal einen Timer rein der die funktion read immer wieder ausführt. Nun stellt man Sich die Frage in welcher Zeit der das immer ausführen soll...dazu möchte Ich gerne ein textFeld einbauen wo der Benutzer eine zeit angeben kann.

Meine Frage ist nun gibt es schon so etwas in der Art oder sollte ich ein ganz normales textfeld nehmen?

gruß w.t.

29.06.2012 - 15:30 Uhr

Ok das hat mir schon weitergeholfen...

Ich habe eine Lösung gefunden...Das Problem selbst konnte ich zwar nicht lösen aber ich bin eben einen anderen Weg gegangen.

Ich hatte ja vor das Script auf dem Server zu starten, jedoch habe ich einfach das Script ins Programm eingebaut und die Parameter können in der Web.Config bei den AppSettings geändert werden, wenn es gemacht werden muss.

gruß w.t.:)

22.06.2012 - 10:54 Uhr

Ja das Password wird ja auch an das Script übergeben das habe ich herausgefunden als ich im Script noch iengebaut hatte das es die übergebenen Parameter in eine TXT Datei schreiben soll. Und als ich hinein gesehen habe waren die auch vorhanden...es muss also ein Fehler entstehen bei der Verbindung zum Exchange Server über das Script.

Die Zeile
C#-Code:
[WebService(Namespace = "http://tempuri.org/")]

ist ebenfalls alles andere als richtig: Te

Wie ist das gemeint ...ich bin jetzt auch noch nicht so erfahren dachte es geht auch so.
Sorry für meine Unwissenheit jedoch bin ich ja auch nur ein Azubi und lerne das ganze grad

15.06.2012 - 15:07 Uhr

Hi MrSparkle

Ich habe mal ohne Config ..also die Werte dierekt im Code übergeben und der Fehler besteht weiterhin 😦
Zudem habe ich ja einen Odner in dem die webconfig, der bin ordner und die asmx seite liegen. Auf die eine Anwenung dann zugreift.

Aber ich habe den Webservice unter .Net 3.5 erstellt weil unter 4.0 bei mir diese option nicht besteht 😦

Und wenn man unter IIS7 auf den Ordner zugreift mus sman ja im Anwendungspool zwischen....

DeafaultAppPool
Classic.Net Apppool
ASP.NET v4.0
ASP.NET v4.0 Classic
ASP.NET v4.0 DefaultAppPool 

entscheiden ...was ist den die richtige wahl? 😕 weil alles mit v4.0 geht ja nicht

Das Script muss stimmen, weil enn ich das Script ausführe auf dem Server auch das passiert was passieren soll

gruß

15.06.2012 - 14:34 Uhr

Hallo ich habe zur Zeit ein großes Problem in Sachen Powershell und Webservice 😦

Die Sache ist die ich habe ein Webdienst geschrieben der einen String erhält und diesen dann an ein Powershell Script übergibt und dieser erzeugt ein neuen Kontakt im Exchange Server. Das ganze funktioniert an meinem Rechner wunderbar, jedoch wenn ich das auf dem anderen Server ausführe bekomme ich immer einen Fehler. Ich werde mal mein Webservice hier zeigen ...

Mein Webservice:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.IO;
using System.Security.Cryptography;
using System.Management.Instrumentation;
using System.Diagnostics;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using System.Collections.ObjectModel;

namespace CreateMailboxService
{
   
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    
    public class Service1 : System.Web.Services.WebService
    {
        string AdminUser = Properties.Settings.Default.User;  //wird von der webconfig bezogen
        string AdminPassword = Properties.Settings.Default.Password; 
        string Domain = Properties.Settings.Default.Domain;
        string Scriptpath = Properties.Settings.Default.ScriptPath;
      

        [WebMethod]
        public string Projektnummer(string projektnummer)
        {
            try
            {
                ScriptStarter(Scriptpath, projektnummer, AdminUser,AdminPassword); 

                return "Die Projektnummer: " + projektnummer + " wurde erfolgreich angelegt"; 
            }
            catch (Exception ex)
            {
                return ex.ToString();                
            }
        }

        [WebMethod]
        public string Connectiontest()
        {
            return "Die Verbindung zum CreateMailboxService besteht"; 
        }

        public void ScriptStarter(string filename, string PNummer, string User,string Password)
        {
            
            
            Runspace run = RunspaceFactory.CreateRunspace();
            run.Open();
            Command myCommand = new Command(filename);

            CommandParameter param1 = new CommandParameter("PNummer", PNummer);
            myCommand.Parameters.Add(param1);

            CommandParameter param2 = new CommandParameter("user", User);
            myCommand.Parameters.Add(param2);

            CommandParameter param3 = new CommandParameter("pass", Password);
            myCommand.Parameters.Add(param3);

            Pipeline pip = run.CreatePipeline();
            pip.Commands.Add(myCommand);

            Collection<PSObject> result = pip.Invoke();
            
            run.Close();
        }

    }
}

Wenn ich das auf meinem Server ausführe bekomme ich diese meldung:

Fehlermeldung:
System.Management.Automation.CmdletInvocationException: Ausnahme beim Aufrufen von ".ctor" mit 2 Argument(en): "Das Argument kann nicht verarbeitet werden, da der Wert des Arguments "password" NULL ist. Ändern Sie den Wert des Arguments "password" in einen Wert ungleich NULL." ---> System.Management.Automation.MethodInvocationException: Ausnahme beim Aufrufen von ".ctor" mit 2 Argument(en): "Das Argument kann nicht verarbeitet werden, da der Wert des Arguments "password" NULL ist. Ändern Sie den Wert des Arguments "password" in einen Wert ungleich NULL." ---> System.Management.Automation.PSArgumentNullException: Das Argument kann nicht verarbeitet werden, da der Wert des Arguments "password" NULL ist. Ändern Sie den Wert des Arguments "password" in einen Wert ungleich NULL. bei System.Management.Automation.PSCredential..ctor(String userName, SecureString password) --- Ende der internen Ausnahmestapelüberwachung --- bei System.Management.Automation.DotNetAdapter.AuxiliaryConstructorInvoke(MethodInformation methodInformation, Object[] arguments, Object[] originalArguments) bei System.Management.Automation.DotNetAdapter.ConstructorInvokeDotNet(Type type, ConstructorInfo[] constructors, Object[] arguments) bei Microsoft.PowerShell.Commands.NewObjectCommand.CallConstructor(Type type, ConstructorInfo[] constructors, Object[] args) --- Ende der internen Ausnahmestapelüberwachung --- bei System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) bei System.Management.Automation.PipelineNode.Execute(Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context) bei System.Management.Automation.ParseTreeNode.Execute(Array input, Pipe outputPipe, ExecutionContext context) bei System.Management.Automation.AssignmentStatementNode.Execute(Array input, Pipe outputPipe, ExecutionContext context) bei System.Management.Automation.StatementListNode.ExecuteStatement(ParseTreeNode statement, Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)

Alles sehr seltsam den wenn ich das ganze auf dem Server als Konsolenanwendung ausführe funktioniert das ganze auch 😦

Ich weiss echt nicht mehr weiter ....den an was kann den das liegen 😦

gruß

13.06.2012 - 11:55 Uhr

Hallo alle Zusammen

wie das Thema schon sagt geht es um PowerShell und C# ...danke einiger User hier habe ich es geschafft ein Script mit Parametern über ein C# Programm auszuführen, jedoch funktioniert das ganze als lokaler Benutzer sagen wir mal "tester.w" jedoch will ich das ganze als ein anderer Benutzer ausführen sagen wir mal "prgAdmin". Ich habe dazu eine Impersonate Klasse erstellt die mich über die LogonUser Funktion zum prgAdmin macht und mich mit einer Methode wieder zu tester.w zurückholt.

Na ja ich denke das ganze ist nicht so einfach zu verstehen und deswegen werde ich natürlich meinen Code preisgeben den ich verwendet habe und einige Dinge dazu schreiben was mir aufgefallen ist 😕

Das ganze ist einfahc mal ein Konsolenprogramm

Program.cs

class Program
    {
        static void Main(string[] args)
        {
            string ScriptPath = @"D:\Scripte\NewScripts\fullname.ps1";

            Console.WriteLine("-- ScriptStarter Console --");
            Console.WriteLine("---------------------------/n");
            string Input = Console.ReadLine();

            try
            {
                //ImpersonateUserX.ImpersonateUser("LWDOMAIN", "prgAdmin", "prgAdmin");
                ImpersonateUserX.ImpersonateUser("LWDOMAIN", "exAdminAutomation", "f&K0q%hv3$x");

                Console.WriteLine("Der Benutzer heißt: " + UserInformation.GetUserName());

                PowerShell.ScriptStart(ScriptPath, Input, "fullname");
                
                ImpersonateUserX.UndoImpersonation(); 

                Console.WriteLine("Script wurde ausgeführt: "); 
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.ReadLine(); 

        }

PowerShell.cs (Eigene Klasse)

static class PowerShell
    {
        
        public static void ScriptStart(string filename, string Parameter1, string PSVar1)
        {
            Runspace run = RunspaceFactory.CreateRunspace();
            run.Open(); 
            Command myCommand = new Command(filename);

            CommandParameter param1 = new CommandParameter(PSVar1, Parameter1);
            myCommand.Parameters.Add(param1); 

            Pipeline pip = run.CreatePipeline();
            pip.Commands.Add(myCommand);

            Collection<PSObject> result = pip.Invoke();

            run.Close(); 
        }

        }
    }

Mein PowerShell Script

param($Fullname)

$err = 0

if($err -eq 0) 
{
	
	$Fullname | Out-File -FilePath 'C:\Eigene Dateien\Vollname.txt'
}

Das ganze Programm dient nur zujm testen ..und wenn ich das ganze ohne Imersonate mache funktioniert das ganze( an der Klasse Impersonate liegt es aber nicht den die Klasse wird schon in anderen Programmen verwendet). Als Fehler Meldung erhalte ich folgende meldung ...

Fehlermeldung:
der angeforderte registrierungszugriff ist unzulässig

Was hat das zu bedeuten, ich habe über Google gesucht jedoch nichts wirklich brauchbares gefunden 😦

Wenn mir da jemand helfen könnte wäre das super 😃

gruß w.t.

12.06.2012 - 09:27 Uhr

Hallo Zusammen

Das ist meine erste Frage in diesem Forum also lieb bleiben 😄^^

Ich bin gerade dabei ein Tool zu schreiben mit diesem man eine eMail Postfach einrichten kann. Hierfür habe ich ein Powershell Script geschrieben der einen Parameter "Projektnummer" enthält dieser wird für den Vornamen, Alias und kp sonst was verwendet.

So sieht mein Script aus ...(einige Informationen(Firmenname) habe ich entfernt) 😉

if ($args.length -ne 0) {
    $ExchangeServer = "http://l..."
    $configDC = "l..."
    $contactDN = "l..."+$Args[0]+""
    $contact = "-Identity '"+$contactDN+"'"
    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $ExchangeServer -Authentication Kerberos
    Import-PSSession $Session
    If (!(Get-MailContact $contactDN))
        {
        $newmailcontact = "New-MailContact -ExternalEmailAddress 'SMTP:"+$Args[0]+"@projekte....' -Name '"+$Args[0]+"' -Alias '"+$Args[0]+"' -FirstName '"+$Args[0]+"' -Initials '' -LastName '' -OrganizationalUnit 'l....' -DomainController '"+$configDC+"'"
        Invoke-Expression $newmailcontact
        start-sleep 10
        Set-Contact -Title 'Projektnummer' -Identity $contactDN -DomainController $configDC
        }
    Remove-PSSession $session

}

Auf jedenfall möchte ich dieses Script mit einem C# Program starten und dabei eine Projektnummer übergeben. Hat da jemand eine Idee oder ein Beispiel wie man das ganze realisieren kann 😦 ?

Ich bin für jede Art von Hilfe dankbar 😃