Laden...

Forenbeiträge von BangerzZ Ingesamt 45 Beiträge

20.12.2021 - 10:31 Uhr

Für eine solche Anwendung sollte es ok sein wenn du die secrets in der web.config/appsettings speicherst. Wenn jemand Zugriff auf den Server hat hast du so oder so verloren. Dann kann der Angreifer auch die Umgebungsvariablen und das Client Secret für die Azure Key Vault auslesen.

Für das Deployment ist es einfacher wenn du Umgebungsvariablen setzt dann musst du die web.config/appsettings nicht anpassen.

19.07.2012 - 14:25 Uhr

Ich bin derzeit auf der Suche eine MP3 Datei auf synchron auf mehreren Soundkarten aus zu geben.

Bis jetzt habe ich NAudio ausprobiert bin dabei aber auf keine Lösung gestoßen.

Keiner einer von euch evtl. einen Weg in NAudio oder einem anderen Audio-Framework?

15.08.2011 - 01:03 Uhr

Ok danke ich habe es jetzt geschafft via Upnp port forwarding zu verwenden. Eine gute Lib. findet sich unter http://code.google.com/p/upnplib/.

14.08.2011 - 23:29 Uhr

Aber das ist doch gerade das Problem.

Sagen wir ich habe Netzwerk A und B, dazu Klient A1 und B1.

Wenn jetzt in Netzwerk B mehrere Rechner sind, dann wüsste der Router aus diesem Netzwerk ja nicht an wen es die Verbindung von A1 weiterleiten soll.

Vlt muss ich deutlich dazu sagen das sich die Klienten übers Internet verbinden sollen und sich somit nicht im gleichen LAN befinden.

14.08.2011 - 23:22 Uhr

Ja das grundlegende Problem sehe ich darin, dass ein Client der hinter einem Router sitzt nicht als Server für die Verbindung von A nach B dienen kann weil die Verbindung die A versucht auf zu bauen in der Regel doch einfach vom Router von B abgelehnt bzw, nicht angenommen wird.

14.08.2011 - 23:08 Uhr

Ich plane zurzeit ein Projekt bei dem viele Clienten mit einander kommunizieren müssen. Dabei habe ich zwar ein zentralen Server dieser soll aber eigentlich nur zur Vermittlung dienen und somit möglichst wenig Traffic generieren.

Jetzt ist halt das Problem das ich nicht weiß wie ich 2 Clienten miteinander verbinden kann, ohne das ich in deren Router Portforwarding einstellen muss um auf die herkömmliche Methode zu verbinden.

Hätte vlt. jemand von euch einen Denkanstoß?

02.01.2011 - 14:35 Uhr

Danke perfekt

02.01.2011 - 02:54 Uhr

Ist es möglich ein anderes Fenster ungeachtet dessen Ursprungs im eigenen zeichnen zu lassen ähnlich einer Form die man als MDIChild einer anderen Form gesetzt hat?

18.12.2010 - 18:39 Uhr

Ok hat sich erledigt, ich hatte an meiner Server klasse einen Kopiervorgang falsch gemacht so das das letzte Byte immer 0 war.

18.12.2010 - 15:40 Uhr

Hallo,

Ich versuche gerade RSA zu Authentifizierung auf meinem Server zu nutzen und erstelle dafür XML Dateien in den der öffentlich und private Schlüssel ist. (RSACryptoProviderService.ToXmlString())

Mein Problem ist, das ich beim entschlüsseln, wenn ich diese Datei Lade, immer die Fehlermeldung kommt, "Ungültige Daten".

Zum erstellen des Containers benutze ich folgende Funktion.

private RSAParameters genKeyPair(string name)
        {
            CspParameters cspParams;
            cspParams = new CspParameters(1);
            cspParams.KeyContainerName = name;
            cspParams.Flags = CspProviderFlags.UseDefaultKeyContainer;
            cspParams.ProviderName = "Microsoft Strong Cryptographic Provider";

            rsaCSP = new RSACryptoServiceProvider(512, cspParams);
            RSAParameters RsaP = rsaCSP.ExportParameters(true);


            byte[] temp = Encoding.ASCII.GetBytes(rsaCSP.ToXmlString(true));

            FileStream fs = File.Create(name + ".key");
            fs.Write(temp, 0, temp.Length);
            fs.Close();

            return RsaP;
        }

Danach Lade ich die Datei in einem anderen Programm und Verschlüssel mit der DECRYPT Funktion (Auf Grund des Aufbaus des RSA sollte das ja möglich sein).

Funktion:

private byte[] generateLoginData(RSACryptoServiceProvider CrypPro)
        {
            string timeStamp = DateTime.Now.ToString("yyyy:MM:dd:HH:mm:ss"); // Der Time Stamp wird erstellt
            byte[] decryptedData = new byte[3 + Encoding.Unicode.GetByteCount(timeStamp)]; //Das Byte array initialisiert und deklariert, da später verschlüsselt werden soll. Die größer ergibt sich aus der timestamp Größe in Unicode und 3 bytes für den öffentlich schlüssel der mit verschlüsselt wird

            CrypPro.ExportParameters(false).Exponent.CopyTo(decryptedData, 0); // Der öffentlich schlüssel wird an den Beginn von decryptedData kopiert
            Encoding.Unicode.GetBytes(timeStamp).CopyTo(decryptedData, 3); // Das der Timestamp der durch UNICODE in ein Byte[] umgewandelt wurde, wird dahinter kopiert

            byte[] encryptedData = CrypPro.Decrypt(decryptedData, false); // decryptedData wird mit DECRYPT verschlüsselt

            return encryptedData;
        }

Auch wenn ich es zuerst normal mit encrypt verschlüssel und dann mit am server mit decrypt versuche kommt die gleiche fehlermeldung.

08.08.2010 - 13:50 Uhr

Das heißt du willst also den Server nur als Vermittler haben.

Ich würde einfach so vorgehen, das sich beide am Server anmelden.
Entweder als "Kunde" oder als "Anbieter".
Für jedes gibt es listen und wenn bei Anbieter jemand eingetragen ist, dann wird die Nachricht vom Kunden an diesen weitergeleitet.

In dieser Nachricht sollte zum Anbieter sollte dann noch die IP des kunden oder evtl eine ID sein damit der Server weiß, wohin er den responce des Anbieters weiter leiten soll.

26.06.2010 - 13:12 Uhr

Ich wollte das Bloß für die beiden über dir nochmal darstellen.

Und danke nochmal.

26.06.2010 - 12:25 Uhr

Es ging mir halt darum, dass ich ein bool[] habe, das ich bitweise schreiben will, um Daten zu Komprimieren.

Und 95.000.000 bytes zu schreiben anstatt 95.000.000 bits ist schon ein unterschied.

26.06.2010 - 02:39 Uhr

Ich habe gerade festgestellt, das das selbste wenn ich einen BinaryWriter ein bool übergebe, er immer ein Byte benutzt um es in eine Datei zu schreiben. Gibt es unter.net eine Möglichkeit, wirklich nur 1 bit weise zu schreiben? oder muss ich sie immer zu bytes zusammen fassen?

25.06.2010 - 23:15 Uhr

Ok es liegt jetzt zu 100% an meinem Code.
Ich habe mal einen Satz selbst komprimiert und dann durch mein Prog gejagt.

Ich erreiche eine Kompression um 40%, mein Prog nur 1%.

Edit: Bei reinem Text erreiche eine Kompressionsrate von 40% bis 50%

25.06.2010 - 21:00 Uhr

Mach doch einfach ein string.replace auf die texte die du ausgeben willst.

25.06.2010 - 17:34 Uhr

Ich erstelle mit einer Methode ein Wörtbuch, in dem für alle Bytes eine Bitreihe eingetragen ist.

Danach gehe ich in der Datei byte für byte durch, und schreibe jedes bit mit einem BinaryWriter.

25.06.2010 - 16:07 Uhr

Aber benutzen Programme wie Winrar etc nicht aus diese Methode? Wo liegt da der Unterschied?

24.06.2010 - 22:51 Uhr

Ich habe ein Problem bei meiner Implementierung des Huffman Algorithmus.
Mein Problem liegt speziell in der Generierung des optimalen Baumes.

Im Moment generiert mein Code nur einen Baum, der zu einer 3 mal größeren Datei führt.

Ich hab 2 Klassen, Node (Knoten) und GroundElment, welches den Wert eines Bytes darstelle und dessen Häufigkeit.

Jetzt füge ich alle GroundElements in eine Liste, und lass sie sortieren (darin liegt nicht der Fehler).

Jetzt nehme ich die ersten beiden Elemente, füge sie zu einem Node hinzu, lösche sie aus der Liste und füge anschließend den Node der List hinzu.
Dies wiederhohle ich so lange, bis die Liste nur noch ein Element enthält.

In meinem Code sieht das so aus. (INode ist nur das Interface, wodurch Node und GroundElement "getCount()" implementieren, womit die Häufigkeit zurückgegeben wird.)

Node:

public class Node : INode
    {
        public INode LeftSubobject { get; set; }
        public INode RightSubobject { get; set; }

        public ulong getCount()
        {
            return LeftSubobject.getCount() + RightSubobject.getCount();
        }

        public bool isGroundElement() // Gibt wieder ob das Element ein GroundElement ist (Member von INode)
        {
            return false;
        }
    }

GroundElement:

public class GroundElement : INode
    {
        public byte Value { get; set; }
        public ulong Count { get; set; }

        public bool isGroundElement()
        {
            return true;
        }

        public ulong getCount()
        {
            return Count;
        }
    }

getBinaryTree(): (Aus einer Datei)

private Node getBinaryTree(string file)
        {
            ulong[] bytesCount = new ulong[256]; // der Zwischenspeicher, für die Häufigkeit der bytes

            FileStream fs = new FileStream(file, FileMode.Open); 


            while (fs.CanRead)
            {
                int index = fs.ReadByte(); // Das byte wird ausgelesen
                if (index == -1) // hier beendet, wenn man nicht mehr auslesen kann. (canRead bleibt aus irgendeinem Grund immer true)
                    break;
                bytesCount[index]++; // Erhöht dann an dem wert des Bytes die Häufigkeit
            }

            fs.Dispose();

            List<INode> treeElements = new List<INode>(); // Die Liste der Elemente, aus der der Baum gebildet wird.

            for (int i = 0; i < 256; i++)
            {
                if (bytesCount[i] != 0) // Hier werden die Elemente hinzugefügt, solange die Häufigkeit nicht 0 ist.
                    treeElements.Add(new GroundElement() { Value = (byte)i, Count = bytesCount[i] });
            }

            sortList(ref treeElements); // Die Methode sortiert die List (funktioniert zu 100%)

            while (treeElements.Count > 1) // Solange noch mehr als ein Element in der Liste ist...
            {
                INode first = treeElements[0]; // ... werden die beiden Elemente mit den Kleinsten werten ausgesucht (durch das sortieren immer 0 und 1)
                INode second = treeElements[1];

                Node temp = new Node() { LeftSubobject = first, RightSubobject = second}; // Dann ein neues Node Element gebildet..

                treeElements.RemoveRange(0, 2); // ... die beiden alten Elemente gelöscht...

                treeElements.Add(temp); // ...und das neue hinzugefügt.

                sortList(ref treeElements); // Schluss endlich wird nochmal für den nächsten Durchgang sortiert
            }

            return (Node)treeElements[0]; // Am ende ist nur noch 1 Element übrig, und das wird zurück gegeben.
        }

Liegt es nun an meinem Code oder kann es sein das es für Dateien keinen Guten Baum gibt, da sich die Häufigkeiten zu sehr ähneln?

06.05.2010 - 20:47 Uhr

Ok dank dir habe ich jetzt auch mal das "Ziel-System" auf 32 bit eingestellt und bin nach ner Menge rumprobieren dazu gekommen das ich jetzt weiß wo er aus dem Code springt.

Und zwar wenn ich einen GlobalEventProvider (aus einer dll; für hotkeys) initialisieren will. Sobald ich das weg mache funktioniert es wunderbar.

Ich werde mich wohl nach einer neuen DLL umsehen wo diese Problem hoffentlich nicht mehr auftaucht,

06.05.2010 - 18:23 Uhr

Ich habe mir mit Hilfe von Vs2010 Rc und Blend 4 Beta eine WPF Anwendung erstellt.
Das komische nun ist nur das die Anwendung nur auf 64 bit System läuft. Sobald ich versuche die Anwendung auf einem 32Bit System zu starten öffnet sich diese nicht.
Auch wenn ich den Compiler auf x86 stelle.

Gibt es da generelle Probleme mit diesen Technologien und 32bit Systemen oder ist der Fehler ohne weiteres nicht zu erkennen?

Und dürfte so ein Fehler überhaupt vorkommen wenn ich den Compiler auf "any Tyoe" stelle zu Stande kommen?

22.04.2010 - 14:23 Uhr

Den teil habe ich ja schon. Aber ich kann ja nicht einfach PHP verwenden und sonst wüsste ich nicht wie ich Sachen an den Server schicken kann.

22.04.2010 - 13:50 Uhr

Ich bin gerade dabei eine Server Anwendung zu schreiben und wollte sie eigentlich per Webinterface steuern .
Ich weiß zwar wie man ein Http request beantwortet nur weiß ich nicht wie ich aus der html Seite heraus eine anfrage an den Server richten kann.

Mir fehlt da hauptsächlich ein Denkanstoß.

08.04.2010 - 16:40 Uhr

Perfekt danke.
Und ja es geht darum die Eingabe in ein nicht fokussiertes Control zu tätigen.

07.04.2010 - 22:52 Uhr

Ich versuche gerade einen string an ein Fenster Control zu senden und das via postMessage.

Dazu habe ich folgende Methode aufgestellt.

        [DllImport("user32", EntryPoint = "PostMessage")]
        public static extern int PostMessage(IntPtr hwnd, int Msg, int wParam, int lParam);

        public static void sendControlString(string msg, IntPtr handle)
        {
            foreach (Char c in msg)
            {
                PostMessage(handle, WM_KEYDOWN, (int)c, 0);
            }
        }

Das eigentliche Problem ist, dass immer das Falsche geschickt wird.
Gebe ich zb als String abcdefg ein, so kommt als Ergebnis : 1234567
Außer dem wird der das Numbpad emuliert, das habe ich herausgefunden in dem ich mir den keycode vom keyDown Event des Control angesehen habe.

Kann mir einer sagen wie ich an den richten wert aus einem Char bekomme?

26.02.2010 - 17:53 Uhr

Bei meinem Projekt greife ich auf Prozesse und Win Api calls zurück und bei der Ausführung über Visual Studios funktioniert auch alles, aber wenn ich die Seite über Den IIS 7 Server laufen lassen, läuft irgend was schief. Ich schätze das der Code nicht auf die Prozesse zugreifen darf.

Stimmt das oder gibt es da evtl andere Gründe?

25.11.2009 - 19:54 Uhr

Ich hab folgendes Problem:

Ich brauche den prozess von dem ich nur den prozess habe, der den startet.

Bsp:

Mein programm startet test1.exe
test1.exe startet test2.exe
ich brauche die PID von test2.exe

Ich habe das auch schon hinbekommen nur leider geng das nur über den namen und sobalt ich den vorgang mehrmals machen will (meherer test1.exe und test2.exe laufen) funktiniert das nicht mehr weil das über den namen läuft.

Ich hoffe ihr habt verstanden was ich meine und könnt mir helfen.

17.11.2009 - 19:00 Uhr

Nein, entschuldigung das hatte ich vergessen oben zu erwähnen.

Das window handle habe ich schon via Process.MainWindowHandle bekommen.

17.11.2009 - 18:51 Uhr

Ich versuche im moment mit SendMessage einfach nur ein Label aus einer anderen Form auszuleesen. Soweit verstehe ich ja auch SendMessage doch weiß ich im Moment nicht wie ich das Handle vom Control ermittel. Ich hoffe das ich das mit der Dialog ID machen kann da die ja immer gleich bleibt.

12.10.2009 - 00:13 Uhr

Doch es geht ohne WM Player da es Teil von .net frame work ist.
Wenn du den stream sniffen willst musst du ein anderen weg suchen

11.10.2009 - 23:20 Uhr

Du kannst den AxWindowsMediaPlayer benutzen dem musst du nur eine Url geben und der spielt das ab

Beispiel:


using AxWMPLib;

AxWindowsMediaPlayer wmp = new AxWindowsMediaPlayer();
wmp.Url = "";
wmp.Ctlcontrols.play()

Jetzt musst ud nur kucken wo die Url zum stream steht

09.10.2009 - 19:48 Uhr

Ok ich habs es jetzt selbst gefunden.
Ich habe es jetzt über ein RegEdit gemacht.

Lösung:

WindowsIdentity wi = WindowsIdentity.GetCurrent();
String pfad = (wi.User.Value + @"\Software\Microsoft\MediaPlayer\Preferences");
RegistryKey key = Registry.Users.OpenSubKey(pfad, true);
key.SetValue("CurrentEffectPreset", null, RegistryValueKind.DWord);
09.10.2009 - 16:18 Uhr

Hallo,
ich benutze im Moment den AxWindowsMediaPlayer um ein internet Stream abzuspielen.
Ich möchte jetzt einfach eine Vizualisierung einbauen und da ich eh schon das Controle habe wollte ich es mir einfach machen und die Vizualizierung darüber anzeigen lassen.

Ich hoffe ihr habt verstanden was ich meine und könnt mir helfen.

MfG BangerzZ

28.08.2009 - 19:45 Uhr

Danke das du voreilige Schlüsse zieht aber das habe ich selbst hier und auch bei Google gefunden. Ich suche eine Funktion/Möglichkeit zB. das Copyright auszulesen und das habe ich hier noch nicht gefunden

28.08.2009 - 19:31 Uhr

Entschuldigung aber ich finde kein Thema das zu meinem passt.

28.08.2009 - 18:22 Uhr

Also es gibt ja die Beschreibung einer Datei unter Eigenschaften -> Details.

BSP: angehängt

ich wollte fragen ob es einen direkten Weg gibt das auszulesen. Weil irgentwo muss das ja gespeichert und auslesbar sein sonst könnte es ja nicht angezeigt werden.

MfG

20.08.2009 - 20:52 Uhr

Danke für den Tipp. Ich musste jetzt auf harte tour erfahren das der XmlSerializer keine mehrdimensionalen Array's unterstützt.

Kann ich die anders Serialisieren oder muss ich das einzeln machen?

20.08.2009 - 19:38 Uhr

Ich habe in meinem neuen Programm versucht, auf die weise dich ich immer benutzt habe und die auch immer funktioniert hat, meine Klasse (in diesem Fall einfach SpeicherKlasse) mittels eines XmlSerializer zu serialisieren.

Allerdings ist das Problem diesmal das ich beim erstellen des XmlSerializer raus fliege.

Er gibt mir Folgende Fehlermeldung zurück:

Fehler beim Reflektieren des Typs 'WindowsFormsApplication1.SpeicherKlasse'.

Ich weiß nicht warum es hier nicht geht, ich habe auch die Klasse mit denen in den anderen Projekten verglichen, aber nichts gefunden.

Ich schreibe nochmal den Code der Klasse hinzu und den Serialisierungsabschnitt.

Serialisierung:


            XmlWriterSettings xws = new XmlWriterSettings();
            xws.Indent = true;
            XmlSerializer xmlSerial = new XmlSerializer(typeof(SpeicherKlasse));  //hier ist der Fehler
            FileStream fst = new FileStream("C:\\Config.xml",
            FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
            XmlWriter xw = XmlWriter.Create(fst, xws);
            xmlSerial.Serialize(xw, this.SK);
            xw.Close();
            fst.Close();

Klasse:


using System;
using System.Collections.Generic;
using System.Text;

namespace WindowsFormsApplication1
{
    public class SpeicherKlasse
    {
        public SpeicherKlasse()
        {
        }

        String[,] spiele = new String[100, 5]; 

        public String[,] Spiele
        {
            get {return spiele;}
            set {spiele = value; }
        }

        private int anzahl = 0;

        public int Anzahl
        {
            get { return anzahl; }
            set { anzahl = value; }
        }
    }
}

Ich habe auch schon geGoogled aber immer nur gefunden, dass man ein anderen Serialisiere nehmen soll, was ich aber nicht will, da es ja sonst auch funktioniert hat.

MfG

08.08.2009 - 01:09 Uhr

Ich habe eine problem und wie der Themenname schon sagt, geht es um die erstellung beliebig vieler textboxen mit den variabeln SK.Höhe udn SK.breite, wobei höhe und breite die anzahl angeben, wieviel textboxen in einer reihe/spalte sein sollen.

ich habe auch schon ein ansatzt aber die text boxen sind nicht sichtbar.


             for (int i = 0; i < SK.Höhe; i++)
            {
                for (int c = 0; c < SK.Breite; c++)
                {

                    TextBox b = new TextBox();
                    b.Width = 20;
                    b.Height = 20;
                    b.Left = (10 + ((c - 1) * 20));
                    b.Top = (10 + ((i - 1) * 20));
                    b.Show();
                    b.Name = "" + SK.Höhe + SK.Breite;
                }
            }
14.05.2009 - 23:54 Uhr

ich hatte das in einem eBook gelesen

14.05.2009 - 23:14 Uhr

Hallo,
wie der titel schon sagt, möchte ich gerne wissen wie ich eine Zahl (ich habe ein "double" als variable gewählt) auf eine bestimmte Anzahl von Nachkommastellen "kürzen" kann.

Mein Lösungansatzt war folgender:


double wert1 = 1,23456789;
double wert2;
wert2 = ("0:0.00".wert1);

Daraus soll normaler Weise resultieren das der "wert2" 1,23 beträgt.
Doch bei mir taucht volgender Fehler auf und ich werde daraus nicht schlau:

"Typ" enthält keine Definition für "Member", und es konnte keine Erweiterungsmethode "Name" gefunden werden, die ein erstes Argument des Typs "Typ" akzeptiert (fehlt eine using-Direktive oder ein Assemblyverweis?).

Ich hoffe ihr könnt mir helfen.

MfG BangerzZ

26.04.2009 - 13:28 Uhr

Ja den Fehler den wir gemacht haben verstehe ich. Wir haben versucht zweimal die gleiche Variable zu erstellen aber ich finde da keine Lösung wie ich dem String sagen kann das er nicht den namen des anderen Strings sondern dessen Inhalt als Namen nehmen soll.

26.04.2009 - 12:53 Uhr

also noch mal zurück zum Anfang. Ich möchte von einem beliebig langen Wort jeden Buchstaben in einem einzelnen String haben. Also:

String 1 = A
String 2 = B
...

dabei habe ich nicht das Problem die Länge rauszufinden, wie herbivore meinte, sondern nur das ich keine feste Stringanzahl nehmen kann.

Wir hatten uns das so gedacht:


String Text = "ichbineintext"
for (int index = 0; index < s_pText.Length; index++)
{
    String index = Text[index]
}

das wir dan den String 1 haben der dan den ersten Buchstaben enthällt.

25.04.2009 - 23:22 Uhr

ja soweit waren wir auch schon das wir das durchlaufen müssen aber wir würden es auch gerne speicher aber da es eine unbekannte länge des Wortes hat und für ein string namen keine variable nehemn darf wissen wir da nicht weiter.

25.04.2009 - 22:50 Uhr

Hi, ich bin neu im Forum und Programiere gerade mit einem Freund zusammen ein Programm. Wir kommen aber gerade nicht weiter. Wir wollen von einem beliebig langen Wort in einer TextBox die wert der Buchstaben addieren. Dabei soll a den Wert 1 b den Wert 2und so weiter haben. hoffe ihr könnt mir/uns helfen.

MfG BangerzZ