using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using LYB.VB; using LYB.VB.CLASSES; public partial class Default : System.Web.UI.Page { DataUtils data = new DataUtils(); Member member; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string[] userIDCookie = null; try { userIDCookie = data.GetUserIDCookie(Request); int memberid = int.Parse(userIDCookie[0]); member = new Member(memberid); Session["member"] = member; ArrayList groups = data.GetGroupsForLoginUser(memberid); if (groups.Count > 3) // instance 0 = groupid, instance 1 = groupname, instance 2 = groupstartpage { lblMessage.Text = "Välkommen " + member.FullName + " v.g. välj webbplats!"; lstGroup.Items.Clear(); for (int i = 1; i < groups.Count; i = i + 3) { lstGroup.Items.Add(groups[i].ToString()); } } else { data.AddToErrorLog(member.CurrentLoginUserID, 0, 2, "Login OK", Session.SessionID, 0); Response.Redirect(userIDCookie[1]); } } catch (Exception ey) { lstGroup.Visible = false; string cookieValue = ""; if (ey.Message.Contains("userid cookie has been hacked")) { cookieValue = ey.Message.Substring(ey.Message.IndexOf('#') + 1); data.AddToErrorLog(cookieValue, 0, 0, "a hacked cookie was deleted", Session.SessionID, 1); HttpCookie userIDCookieToDelete = new HttpCookie("LYB2ASPNET2USERID", cookieValue); userIDCookieToDelete.Expires = DateTime.Now.AddDays(-1); Response.Cookies.Add(userIDCookieToDelete); } else { if (ey.Message.Contains("not set to an instance") || ey.Message.Contains("Objektreferensen har inte angetts till en instans av ett objekt.")) { member = (Member)Session["member"]; ArrayList groups = data.GetGroupsForLoginUser(member.MemberID); if (groups.Count > 3) // instance 0 = groupid, instance 1 = groupname, instance 2 = groupstartpage { lblMessage.Text = "Välkommen " + member.FullName + " v.g. välj webbplats!"; lstGroup.Items.Clear(); for (int i = 1; i < groups.Count; i = i + 3) { lstGroup.Items.Add(groups[i].ToString()); } lstGroup.Visible = true; } else { string memberMailAddress; if (member.MailAddressHome != null) memberMailAddress = member.MailAddressHome; else memberMailAddress = member.MailAddressWork; data.AddToErrorLog(member.CurrentLoginUserID, 0, 2, "Login OK", Session.SessionID, 0); Response.Redirect(member.GroupStartPage); } } else { if (ey.Message.Contains("connection to the server")) { lblMessage.Text = Resources.Resource.dataAccessErrorMessage; } else lblMessage.Text = Resources.Resource.loginErrorMessage; // + ey.Message; } } } } } protected void lstGroup_SelectedIndexChanged(object sender, EventArgs e) { int memberid = 0; member = (Member)Session["member"]; if (member == null) { string[] userIDCookie = data.GetUserIDCookie(Request); memberid = int.Parse(userIDCookie[0]); member = new Member(memberid); memberid = member.MemberID; } else { memberid = member.MemberID; } ArrayList groups = data.GetGroupsForLoginUser(memberid); string redirectPage = ""; for (int r = 1; r < groups.Count; r = r + 3) { if (lstGroup.SelectedValue.ToString() == (string)groups[r]) { redirectPage = (string)groups[r + 1]; } } if (redirectPage != "") { member.CurrentLoginGroup = int.Parse(redirectPage.Substring(5, 1)); Session["member"] = member; Response.Redirect(redirectPage); } } }