SSL/TLS-Zertifikate in C# herunterladen

SSL-TLS Zertifikate in C-Sharp downloadenIn diesem Artikel soll es darum gehen wie man SSL/TLS-Zertifikate beliebiger Server in C# herunterladen bzw. speichern kann. Zwar lassen sich Zertifikate heutzutage auch recht einfach aus dem Webbrowser heraus speichern, jedoch ist dies immer mit recht vielen Klicks verbunden. Und spätestens, wenn man Zertifikate von Mail-Servern, etc. speichern möchte, also Systemen die nicht direkt im Webbrowser angesprochen werden können, ist eine programmatische Lösung, wie in diesem Beitrag gezeigt, der einfachere Weg.
Insgesamt möchte ich heute zwei Varianten vorstellen. Eine Variante, die nur für HTTPS-Verbindungen funktioniert und eine Variante, die für sämtliche TCP-Verbindungen (also auch Mailserver, etc.) funktioniert.
HTTPS/SSL-Zertifikate in C# herunterladen
Die erste angesprochene Lösung funktioniert nur für HTTPS-Verbindungen und basiert auf der HttpWebRequest-Klasse, welche auch unter der WebClient-Klasse liegt. Erstellt man ein […]

MySQL Datenbankgröße in MB anzeigen lassen

MySQL Datenbankgrößer per SQL ermittelnHeute gibt es nur einen ganz kurzen Artikel mit einem SQL-Statement, welches es erlaubt die Größe einer MySQL-Datenbank anzeigen zu lassen sowie der Beschreibung wie sich die Datenbankgröße auch in phpMyAdmin anzeigen lässt. Beginnen wir mit dem SQL-Statement. Um sich die Größe einer bestimmten MySQL-Datenbank in MegaByte (MB) anzeigen zu lassen, eignet sich folgender SQL-Befehl:

SELECT table_schema,
sum( data_length + index_length ) / 1024 / 1024 "Database Size in MB"
FROM information_schema.TABLES WHERE table_schema="{my_database_name}" GROUP BY table_schema

Innerhalb des Statements muss vor der Ausführung allerdings nach der Platzhalter {my_database_name} durch den Namen der Datenbank ersetzt werden, dessen Größe ermittelt werden soll. Wenn die Größe aller Datenbank auf dem MySQL-Server angezeigt werden soll, kann die Where-Bedingung weggelassen werden. So ergibt sich folgendes Statement:

SELECT table_schema,
sum( […]

Datum in PHP vergleichen – so geht’s

php_date_compareWie vergleicht man eigentlich 2 Daten (Daten = Plural von Datum) in PHP miteinander? Die Frage klingt erst mal einfacher als es ist.
Der erste Gedanke, der einem meistens kommt, ist folgender. Wir speichern 2 Daten als String und vergleichen diese.
 
 
Vorüberlegung

<?php
$date1 = "2012-1-12";
$date2 = "2011-10-12";

if ($date1 > $date2)
echo "$date1 ist neuer als $date2";
else
echo "$date1 ist &auml;lter als $date2";
?>

Ausgabe:

2012-1-12 ist neuer als 2011-10-12

Auf den ersten Blick scheint das auch eine funktionierende Lösung zu sein. Was jedoch, wenn die beiden Daten in einem unterschiedlichen Format vorliegen?

<?php
$date1 = "12-1-12";
$date2 = "2011-10-12";

if ($date1 > $date2)
echo "$date1 ist neuer als $date2";
else
echo "$date1 ist &auml;lter als $date2";
?>

Ausgabe:

12-1-12 ist älter als 2011-10-12

Nun wird das Datum in 2012 auf einmal als kleiner als das Datum in […]

Einfache XML-Serialisierung in C#

C# XML SerialisierungHeute möchte ich euch zeigen, wie man eine XML-Serialisierung in C# durchführen kann. Serialisierung selbst, bedeutet, dass man ein Objekt in eine andere, transportable Form umwandelt. Mittels XML-Serialisierung ist es uns zum Beispiel nötig, ein Objekt einer Klasse in Form einer XML-Datei abzuspeichern und auch wieder herzustellen.
Das kann Sinn machen, wenn man ein Objekt in seinem Zustand nach dem Schließen und erneuten Öffnen einer Anwendung wiederherstellen oder wenn man ein Objekt beispielsweise per HTTP übertragen möchte.
Für unser Beispiel habe ich folgende Klasse Blog erstellt:

public class Blog
{
public string User { get; set; }
public string Pass { get; set; }
public string Subdomain { get; set; }
public string BaseUrl { get; set; […]

Benutzer im Active Directory suchen in C# – der einfache Weg

Vorgestern schrieb ich noch darüber, wie man die Active Directory Suchfunktion in Windows 7 erreicht. Heute soll es darum gehen, wie man in C# komfortabel das Active Directory nach Benutzern durchsuchen kann. Der Schwerpunkt liegt hierbei auf komfortabel, denn Artikel über die Thematik generell gibt es schon einige im Netz. Die meisten nutzen dafür jedoch ausschließlich die Methoden rund um System.DirectoryServices.ActiveDirectory und den DirectorySearcher. Doch seit .NET 3.5 geht es auch mit wesentlich weniger und vorallem, wie ich finde, verständlicherem Quelltext.
Doch kommen wir nun zur Sache. In dem folgenden Beispiel nutze ich hauptsächlich Methoden aus dem System.DirectoryServices.AccountManagement Namespace. Und so geht’s:

//Einen Kontext zur entsprechenden Windows Domäne erstellen
PrincipalContext domainContext = new PrincipalContext(ContextType.Domain,
[…]