Beiträge mit dem Stichwort ‘.NET’

ASP.NET: Mails über SMTP mit SMTP Auth versenden

Veröffentlicht am 26. Januar 2010 um 08:28 von Fabian Martin Permalink

Mit dem folgenden Code Schnipsel lassen sich E-Mails über einen SMTP Server versenden, der eine Anmeldung mittels SMTP Auth erwartet.

MailMessage Message = new MailMessage();

// Benutzername u. Passwort
NetworkCredential UserNamePass = new NetworkCredential("username@example.org", "password");

// SMTP Client erstellen
SmtpClient Client = new SmtpClient()
{
	DeliveryMethod = SmtpDeliveryMethod.Network,
	Host = "mail.example.org",
	UseDefaultCredentials = false,
	Credentials = UserNamePass
};

// Mail versenden
Client.Send(Message);

Das MailMessage Objekt muss natürlich noch mit den wichtigsten Daten (Empfänger, Betreff, Nachricht etc.) gefüllt werden.

Lighttpd 1.4: HTTP 417 Expectation Failed

Veröffentlicht am 13. Januar 2010 um 15:22 von Fabian Martin Permalink

Versucht man mit einer cURL oder .NET Anwendung POST Daten an einen Lighttpd 1.4 Server zu senden, bekommt man die Meldung


HTTP/1.1 417 Expectation Failed

Dies liegt daran, das die Programme einen Expect: 100-continue Header senden, und als Antwort 100 (Continue) oder 417 Expectation Failed erwarten. Lighty kennt den Header jedoch nicht, und antwortet deswegen mit dem besagten 417 Expectation Failed.

Der Expect: 100-continue Header soll verhindern, das Daten an den Server gesendet werden, die nicht benötigt werden. Erkennt der Server z.B. das er die Anfrage ablehnen muss, kann er dies dem Client mitteilen, noch bevor die POST Daten übermittelt wurden.

Wer dennoch POST Daten an Lighty senden möchte, kann die folgenden Paramter anpassen:

.NET


System.Net.ServicePointManager.Expect100Continue = false;

cURL unter PHP

curl_setopt($objCurl, CURLOPT_HTTPHEADER, array('Expect: '));

cURL auf der Kommandozeile

curl -v -H "Expect: " -F "field=value" http://example.com/upload.php

Alternativ aktualisiert man auf Lighttpd 1.5. Dieser kennt den Expect: 100-continue Header und beantwortet entsprechende Anfragen korrekt.

Browser senden übrigens keinen Expect: 100-continue Header.

ASP.NET: Namespace in allen ASP Seiten zur Verfügung stellen

Veröffentlicht am 28. November 2009 um 11:46 von Fabian Martin Permalink

Um einen Namespace in allen Seiten zur Verfügung zu stellen, reicht es diesen in der Web.config zu hinterlegen. Ein zusätzliches einbinden des Namespaces in jede Seite entfällt so in Zukunft.

<system.web>
  <pages>
    <namespaces>
        <add namespace="Mein.Namespace" />
    </namespaces>
  </pages>
</system.web>

.NET: Hex to Char / Char to Hex

Veröffentlicht am 11. November 2009 um 14:32 von Fabian Martin Permalink
            // Hex to Char -> Ergebnis: A
            char c = (char)Convert.ToInt32("0x41", 16);

            // Char to Hex -> Ergebnis: 0x41
            string hex = "0x" + Convert.ToInt32('A').ToString("X");

Freier Code Obfuscator für .NET

Veröffentlicht am 11. Juli 2009 um 21:58 von Fabian Martin Permalink

Wer Programme mit dem .NET Framework entwickelt, wird sich schon einmal damit beschäftigt haben, wie er seinen Code am besten schützen kann. Während es bei einem in C/C++ geschriebenen Programm ein Problem darstellt, einen einigermaßen lesbaren Code aus einer kompilierten Datei zu bekommen, ist es bei .NET, dank der CIL und Tools wie dem .NET Reflector, ein einfaches den Code nahezu 1:1 wieder zu bekommen.

Mit Eazfuscator.NET hat Oleksiy Gapotchenko ein kostenloses Programm veröffentlicht mit dem die Verschleierung des Codes durch ein einfaches Interface ermöglicht wird. Es ersetzt u.a. Variablen und Funktionsnamen durch unleserliche Zeichen.

Das Programm ist noch nicht 100%ig fehlerfrei und geschützte Assemblys sollten nochmal getestet werden. Einen Test ist es aber auf alle Fälle wert.

Eazfuscator.NET

Eazfuscator.NET