public LoginResult AttemptLogin(string username, string password, string tfa) { Account acc = Database.GetAccount(username); if (acc == null) { return(LoginResult.MISSING); } LoginResult res = acc.CanLogin(password, tfa); if (res != LoginResult.ALLOWED) { return(res); } acc.Update(Builders <BsonDocument> .Update.Set(Account.LAST_LOGIN_DATE, ForumUtilities.DateNow())); CookieOptions co_uid = new CookieOptions(); co_uid.HttpOnly = true; // NOTE: Microsoft HttpOnly documentation appears to be backwards? co_uid.Expires = DateTimeOffset.Now.AddYears(1); Response.Cookies.Append("session_uid", acc.UserID.ToString(), co_uid); Response.Cookies.Append("session_val", acc.GenerateSession(), co_uid); return(LoginResult.ALLOWED); }
public BsonDocument CreateEmptyUserDocument() { BsonDocument user = new BsonDocument(); user[Account.UID] = (long)-1; user[Account.USERNAME] = "example"; user[Account.PASSWORD] = "This Won't Be Usable"; user[Account.EMAIL] = "*****@*****.**"; user[Account.DISPLAY_NAME] = "Example"; user[Account.BANNED] = false; user[Account.BANNED_UNTIL] = ""; user[Account.BAN_REASON] = ""; user[Account.ACTIVE] = false; user[Account.ACTIVATION_CODE] = "<Unusable>?"; user[Account.REGISTER_DATE] = ForumUtilities.DateNow(); user[Account.LAST_LOGIN_DATE] = "Never"; user[Account.USES_TFA] = false; user[Account.TFA_BACKUPS] = ""; user[Account.TFA_INTERNAL] = ""; user[Account.ACCOUNT_TYPE] = Account.AT_INCOMPLETE; user[Account.ROLES] = new BsonArray(new BsonValue[] { }); return(user); }