Feb 25 2010

String in Byte Array und zurück wandeln

Tag: .NETMichael @ 8:54
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);
}

Feb 01 2010

ASP.NET FormsAuthentication – Persistant Ticket/Cookie

Tag: .NETMichael @ 12:19

Ich hatte einen recht eigenartigen Effekt bei FormsAuthentication in Zusammenhang mit einem persistant Authentickation Ticket.

Ein mit der Methode “FormsAuthentication.GetAuthCookie” 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 “Hand”, verschlüssele es und schreibe es in ein Cookie:

protected void Login_LoggedIn(object sender, EventArgs e)
{
	var ctrLogin = (Login) sender;
	var persistCheckBox = ctrLogin.FindControl("PersistCheckBox") 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, "");
	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 && !_redirectUrl.Equals(string.Empty))
		Response.Redirect(_redirectUrl, isPersistent);
	else
		Response.Redirect(FormsAuthentication.GetRedirectUrl(ctrLogin.UserName, isPersistent));
}