Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }