<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>M(y)Elwood</title>
	<atom:link href="http://msfnet.de/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://msfnet.de</link>
	<description>PHP, .Net and more</description>
	<lastBuildDate>Wed, 17 Mar 2010 10:52:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>SquirrelMail nicht auf Deutsch</title>
		<link>http://msfnet.de/?p=190</link>
		<comments>http://msfnet.de/?p=190#comments</comments>
		<pubDate>Wed, 17 Mar 2010 10:52:16 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Deustch]]></category>
		<category><![CDATA[SquirrelMail]]></category>

		<guid isPermaLink="false">http://msfnet.de/?p=190</guid>
		<description><![CDATA[Falls sich das SquirrelMail Interface nicht auf Deustch umschalten läßt, liegt das vermutlich an einer fehlenden locale: sudo locale-gen de_DE iso 8859-1 dpkg-reconfigure locales squirrelmail-configure und unter dem Punkt Languages &#8220;de_DE&#8221; einstellen.]]></description>
			<content:encoded><![CDATA[<p>Falls sich das SquirrelMail Interface nicht auf Deustch umschalten läßt, liegt das vermutlich an einer fehlenden locale:</p>
<pre class="brush: java;">
sudo locale-gen de_DE iso 8859-1
dpkg-reconfigure locales

squirrelmail-configure
</pre>
<p>und unter dem Punkt <strong>Languages</strong> &#8220;de_DE&#8221; einstellen.</p>
]]></content:encoded>
			<wfw:commentRss>http://msfnet.de/?feed=rss2&amp;p=190</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>String in Byte Array und zurück wandeln</title>
		<link>http://msfnet.de/?p=186</link>
		<comments>http://msfnet.de/?p=186#comments</comments>
		<pubDate>Thu, 25 Feb 2010 07:54:51 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Byte Array]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[wandeln]]></category>

		<guid isPermaLink="false">http://msfnet.de/?p=186</guid>
		<description><![CDATA[private byte[] StringToByteArray(string sourceString) { System.Text.ASCIIEncoding sourceEncoding = new System.Text.ASCIIEncoding(); return sourceEncoding.GetBytes(sourceString); } private string ByteArrayToString(byte[] sourceArray) { System.Text.ASCIIEncoding sourceEncoding = new System.Text.ASCIIEncoding(); return sourceEncoding.GetString(sourceArray); }]]></description>
			<content:encoded><![CDATA[<pre class="brush: csharp;">
private byte[] StringToByteArray(string sourceString)
{
    System.Text.ASCIIEncoding sourceEncoding = new System.Text.ASCIIEncoding();
    return sourceEncoding.GetBytes(sourceString);
}

private string ByteArrayToString(byte[] sourceArray)
{
    System.Text.ASCIIEncoding sourceEncoding = new System.Text.ASCIIEncoding();
    return sourceEncoding.GetString(sourceArray);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://msfnet.de/?feed=rss2&amp;p=186</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET FormsAuthentication &#8211; Persistant Ticket/Cookie</title>
		<link>http://msfnet.de/?p=179</link>
		<comments>http://msfnet.de/?p=179#comments</comments>
		<pubDate>Mon, 01 Feb 2010 11:19:19 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[FormsAuthentication]]></category>
		<category><![CDATA[Persistant]]></category>
		<category><![CDATA[Ticket]]></category>

		<guid isPermaLink="false">http://msfnet.de/?p=179</guid>
		<description><![CDATA[Ich hatte einen recht eigenartigen Effekt bei FormsAuthentication in Zusammenhang mit einem persistant Authentickation Ticket. Ein mit der Methode &#8220;FormsAuthentication.GetAuthCookie&#8221; erzeugtes Ticket war nur 30 Minuten gültig, obwohl ich überall gelesen habe, das ein so erzeugtes Ticket 50 Jahre gültig sein sollte. Daher erstelle ich das Ticket jetzt von &#8220;Hand&#8221;, verschlüssele es und schreibe es [...]]]></description>
			<content:encoded><![CDATA[<p>Ich hatte einen recht eigenartigen Effekt bei FormsAuthentication in Zusammenhang mit einem persistant Authentickation Ticket. </p>
<p>Ein mit der Methode &#8220;FormsAuthentication.GetAuthCookie&#8221; erzeugtes Ticket war nur 30 Minuten gültig, obwohl ich überall gelesen habe, das ein so erzeugtes Ticket 50 Jahre gültig sein sollte.</p>
<p>Daher erstelle ich das Ticket jetzt von &#8220;Hand&#8221;, verschlüssele es und schreibe es in ein Cookie:</p>
<pre class="brush: csharp;">
protected void Login_LoggedIn(object sender, EventArgs e)
{
	var ctrLogin = (Login) sender;
	var persistCheckBox = ctrLogin.FindControl(&quot;PersistCheckBox&quot;) as CheckBox;
	var isPersistent = persistCheckBox != null ? persistCheckBox.Checked : false;

	var authTicket = new FormsAuthenticationTicket(1, ctrLogin.UserName, DateTime.Now, isPersistent ? DateTime.Now.AddYears(2) : DateTime.Now.AddHours(1), isPersistent, &quot;&quot;);
	var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket)) {Expires = DateTime.Now.AddYears(2)};

	Response.Cookies.Add((authCookie));

	BayDirUser.SetUser(ctrLogin.UserName, ctrLogin.Password);

	if (_redirectUrl != null &amp;&amp; !_redirectUrl.Equals(string.Empty))
		Response.Redirect(_redirectUrl, isPersistent);
	else
		Response.Redirect(FormsAuthentication.GetRedirectUrl(ctrLogin.UserName, isPersistent));
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://msfnet.de/?feed=rss2&amp;p=179</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET FormsAuthentication &#8211; Logout</title>
		<link>http://msfnet.de/?p=176</link>
		<comments>http://msfnet.de/?p=176#comments</comments>
		<pubDate>Thu, 28 Jan 2010 12:00:55 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[FormsAuthentication]]></category>
		<category><![CDATA[Logout]]></category>

		<guid isPermaLink="false">http://msfnet.de/?p=176</guid>
		<description><![CDATA[ASP.NET FormsAuthentication &#8211; Logout protected void LoggedOut(object sender, EventArgs e) { FormsAuthentication.SignOut(); HttpCookie authCookie = Context.Response.Cookies.Get(FormsAuthentication.FormsCookieName); if (authCookie != null) authCookie.Expires = DateTime.Now.AddYears(-1); Session.Abandon(); Response.Redirect(&#34;~/default.aspx&#34;, true); }]]></description>
			<content:encoded><![CDATA[<p>ASP.NET FormsAuthentication &#8211; Logout</p>
<pre class="brush: csharp;">
protected void LoggedOut(object sender, EventArgs e)
{
	FormsAuthentication.SignOut();
	HttpCookie authCookie = Context.Response.Cookies.Get(FormsAuthentication.FormsCookieName);

	if (authCookie != null)
		authCookie.Expires = DateTime.Now.AddYears(-1);

	Session.Abandon();

	Response.Redirect(&quot;~/default.aspx&quot;, true);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://msfnet.de/?feed=rss2&amp;p=176</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nur eine Instanz eines Programms zulassen</title>
		<link>http://msfnet.de/?p=168</link>
		<comments>http://msfnet.de/?p=168#comments</comments>
		<pubDate>Wed, 27 Jan 2010 11:58:50 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programminstanz]]></category>

		<guid isPermaLink="false">http://msfnet.de/?p=168</guid>
		<description><![CDATA[Mit diesem Code wird verhindert man, das eine Applikation mehr als einmal innerhalb einer Session (Anmeldung) ausgeführt werden kann: private const string AppGuid = &#34;97E652FF-73A5-3ED6-A4E5-DA2AF2132C98&#34;; [STAThread] private static void Main() { using (Mutex progMutex = new Mutex(false, AppGuid)) { if (!progMutex.WaitOne(0, false)) { MessageBox.Show(&#34;Dieses Programm ist bereits geöffnet&#34;); return; } Application.Run(new Form1()); } } Soll [...]]]></description>
			<content:encoded><![CDATA[<p>Mit diesem Code wird verhindert man, das eine Applikation mehr als einmal innerhalb einer Session (Anmeldung) ausgeführt werden kann:</p>
<pre class="brush: csharp;">
private const string AppGuid = &quot;97E652FF-73A5-3ED6-A4E5-DA2AF2132C98&quot;;

[STAThread]
private static void Main()
{
	using (Mutex progMutex = new Mutex(false, AppGuid))
	{
		if (!progMutex.WaitOne(0, false))
		{
			MessageBox.Show(&quot;Dieses Programm ist bereits geöffnet&quot;);
			return;
		}

		Application.Run(new Form1());

	}
}
</pre>
<p>Soll die Anwendung in allen Sessions nur einmal ausgeführt werden können, muss man den Mutex in den global Namespace schreiben:</p>
<pre class="brush: csharp;">
private const string AppGuid = &quot;97E652FF-73A5-3ED6-A4E5-DA2AF2132C98&quot;;

[STAThread]
private static void Main()
{
	using (Mutex progMutex = new Mutex(false, @&quot;Global\&quot; + AppGuid))
	{
		if (!progMutex.WaitOne(0, false))
		{
			MessageBox.Show(&quot;Dieses Programm ist bereits geöffnet&quot;);
			return;
		}

		Application.Run(new Form1());

	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://msfnet.de/?feed=rss2&amp;p=168</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# Internetverbindung testen</title>
		<link>http://msfnet.de/?p=164</link>
		<comments>http://msfnet.de/?p=164#comments</comments>
		<pubDate>Mon, 16 Nov 2009 13:17:57 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Internetverbindung]]></category>

		<guid isPermaLink="false">http://msfnet.de/?p=164</guid>
		<description><![CDATA[[DllImport(&#34;WININET&#34;, CharSet = CharSet.Auto)] static extern bool InternetGetConnectedState(int lpdwFlags, int dwReserved); public bool CheckInternetConnection() { return InternetGetConnectedState(0, 0); }]]></description>
			<content:encoded><![CDATA[<pre class="brush: csharp;">
[DllImport(&quot;WININET&quot;, CharSet = CharSet.Auto)]
static extern bool InternetGetConnectedState(int lpdwFlags, int dwReserved);

public bool CheckInternetConnection()
{
	return InternetGetConnectedState(0, 0);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://msfnet.de/?feed=rss2&amp;p=164</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enumeration in einem WCF Service</title>
		<link>http://msfnet.de/?p=154</link>
		<comments>http://msfnet.de/?p=154#comments</comments>
		<pubDate>Fri, 06 Nov 2009 13:31:20 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://msfnet.de/?p=154</guid>
		<description><![CDATA[Um eine Enumeration in einem WCF Sefvice an den Client zu übertragen, muss das [ServiceKnownType(typeof(Enum))] Attribute in den Service Contract eingefügt werden: namespace TestService.Interfaces { [ServiceContract] [ServiceKnownType(typeof(MyEnum))] public interface ITestService { [OperationContract] .... } } Die Enumeration sieht dann so aus: namespace TestService.Classes { [DataContract] public enum MyEnum { [EnumMember] Undefined = 0, [EnumMember] Okay [...]]]></description>
			<content:encoded><![CDATA[<p>Um eine Enumeration in einem WCF Sefvice an den Client zu übertragen, muss das <em>[ServiceKnownType(typeof(Enum))]</em> Attribute in den Service Contract eingefügt werden:</p>
<pre class="brush: csharp;">
namespace TestService.Interfaces
{
    [ServiceContract]
    [ServiceKnownType(typeof(MyEnum))]
    public interface ITestService
    {
        [OperationContract]
        ....
    }
}
</pre>
<p>Die Enumeration sieht dann so aus:</p>
<pre class="brush: csharp;">
namespace TestService.Classes
{
 	[DataContract]
	public enum MyEnum
	{
		[EnumMember]
		Undefined = 0,

		[EnumMember]
		 Okay = 1,

		[EnumMember]
		Error = 2
	}

    [DataContract]
	public class MyClass
    {
		...
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://msfnet.de/?feed=rss2&amp;p=154</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Passwort vergessen</title>
		<link>http://msfnet.de/?p=124</link>
		<comments>http://msfnet.de/?p=124#comments</comments>
		<pubDate>Thu, 26 Mar 2009 10:53:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Passwort]]></category>

		<guid isPermaLink="false">http://msfnet.de/?p=124</guid>
		<description><![CDATA[MySQL-Server anhalten: /etc/init.d/mysql stop In die MySQL-Shell einloggen: mysqld_safe --user=root --datadir=/var/lib/mysql --skip-grant-tables &#38; mysql --user=root mysql Neues Passwort festlegen : mysql&#62; update user set Password=PASSWORD('Neues Password') WHERE User='root'; mysql&#62; quit; MySQL neustarten: /etc/init.d/mysql start]]></description>
			<content:encoded><![CDATA[<p>MySQL-Server anhalten:</p>
<pre class="brush: java;">/etc/init.d/mysql stop</pre>
<p>In die MySQL-Shell einloggen:</p>
<pre class="brush: java;">mysqld_safe  --user=root --datadir=/var/lib/mysql --skip-grant-tables &amp; mysql --user=root mysql</pre>
<p>Neues Passwort festlegen :</p>
<pre class="brush: java;">
mysql&gt; update user set Password=PASSWORD('Neues Password') WHERE User='root';
mysql&gt; quit;</pre>
<p>MySQL neustarten:</p>
<pre class="brush: java;">/etc/init.d/mysql start</pre>
]]></content:encoded>
			<wfw:commentRss>http://msfnet.de/?feed=rss2&amp;p=124</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# Equivalent für VB&#8217;s &#8220;Left&#8221; Funktion</title>
		<link>http://msfnet.de/?p=119</link>
		<comments>http://msfnet.de/?p=119#comments</comments>
		<pubDate>Thu, 12 Mar 2009 12:35:35 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Left]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false">http://msfnet.de/?p=119</guid>
		<description><![CDATA[public static string Left(string strText, int intLength) { try { if (intLength &#60; 0) throw new ArgumentOutOfRangeException(&#34;Length&#34;, intLength, &#34;Length must be &#62; 0&#34;); else if (intLength == 0 &#124;&#124; strText.Length == 0) return &#34;&#34;; else if (strText.Length &#60;= intLength) return strText; else return strText.Substring(0, intLength); } catch {} }]]></description>
			<content:encoded><![CDATA[<pre class="brush: csharp;">
public static string Left(string strText, int intLength)
{
    try
	{
		if (intLength &lt; 0)
			throw new ArgumentOutOfRangeException(&quot;Length&quot;, intLength, &quot;Length must be &gt; 0&quot;);
		else if (intLength == 0 || strText.Length == 0)
			return &quot;&quot;;
		else if (strText.Length &lt;= intLength)
			return strText;
		else
			return strText.Substring(0, intLength);
	}
	catch {}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://msfnet.de/?feed=rss2&amp;p=119</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C#: Den MD5 Hash eines Strings als String</title>
		<link>http://msfnet.de/?p=117</link>
		<comments>http://msfnet.de/?p=117#comments</comments>
		<pubDate>Thu, 18 Dec 2008 16:42:31 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[MD5]]></category>

		<guid isPermaLink="false">http://msfnet.de/?p=117</guid>
		<description><![CDATA[public string getMD5Hash(string strSource) { String strResult; if ((strSource == null) &#124;&#124; (strSource.Length == 0)) { strResult = string.Empty; } else { System.Security.Cryptography.MD5CryptoServiceProvider objMD5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] arrTextToHash = Encoding.Default.GetBytes(strSource); byte[] arrResult = objMD5.ComputeHash(arrTextToHash); strResult = System.BitConverter.ToString(arrResult); } return strResult; }]]></description>
			<content:encoded><![CDATA[<pre class="brush: csharp;">
public string getMD5Hash(string strSource)
{
String strResult;

if ((strSource == null) || (strSource.Length == 0))
{
strResult = string.Empty;
}
else
{

System.Security.Cryptography.MD5CryptoServiceProvider objMD5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] arrTextToHash = Encoding.Default.GetBytes(strSource);
byte[] arrResult = objMD5.ComputeHash(arrTextToHash);

strResult =  System.BitConverter.ToString(arrResult);
}

return strResult;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://msfnet.de/?feed=rss2&amp;p=117</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
