示例#1
0
        public static bool LogIn(Controller controller, string username, string password)
        {
            if (IsLoggedIn(controller))
            {
                return(true);
            }

            if (username == null || password == null)
            {
                return(false);
            }

            var db   = new Rognar.Models.MainDB();
            var user = db.Users.Where(u => u.Username.ToLower() == username.ToLower()).FirstOrDefault();

            if (user == null || !VerifyPassword(password, user.Password))
            {
                return(false);
            }

            controller.Session["user"] = user;
            return(true);
        }
示例#2
0
        public ActionResult Register()
        {
            bool submit = Request["submit"] != null;

            if (submit)
            {
                var db = new Rognar.Models.MainDB();
                db.Database.Connection.Open();
                bool   success  = true;
                string Username = !string.IsNullOrEmpty(Request["username"]) ? Request["username"].Trim() : string.Empty;
                string Email    = !string.IsNullOrEmpty(Request["email"]) ? Request["email"].Trim() : string.Empty;

                if (string.IsNullOrEmpty(Request["username"]) || Request["username"].Length < 3)
                {
                    success            = false;
                    ViewBag.UnameError = "Username must be at least 3 characters long.";
                }
                else if (db.Users.Where(u => u.Username.ToLower() == Username.ToLower()).FirstOrDefault() != null)
                {
                    success            = false;
                    ViewBag.UnameError = "Username is already taken.";
                }

                if (string.IsNullOrEmpty(Request["password"]) || Request["password"].Length < 6)
                {
                    success           = false;
                    ViewBag.PassError = "Password must be at least 6 inches long.";
                }

                if (string.IsNullOrEmpty(Request["email"]) || !(new System.ComponentModel.DataAnnotations.EmailAddressAttribute()).IsValid(Request["email"]))
                {
                    success           = false;
                    ViewBag.MailError = "Invalid email address.";
                }
                else if (db.Users.Where(u => u.Email.ToLower() == Email.ToLower()).FirstOrDefault() != null)
                {
                    success           = false;
                    ViewBag.MailError = "Email is already being used.";
                }

                if (success)
                {
                    try
                    {
                        db.Users.Add(new Rognar.Models.User()
                        {
                            Username = Request["username"].Trim(), Password = Rognar.Helpers.LoginHelper.HashPassword(Request["password"]), Email = Request["email"]
                        });
                        db.SaveChanges();
                        ViewBag.Message = "Account successfully created.";
                        return(new RedirectResult("/Home/Index"));
                    }
                    catch
                    {
                        ViewBag.Message = "An error has occurred while creating your account.";
                        ViewBag.Error   = true;
                    }
                }
            }
            return(View());
        }