public async Task <ActionResult> LogOn(LogOnModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
#if !DEBUG
                if (Request.IsSecureConnection)
                {
#endif
                //not required, but just an additional 'set' to give the user web api auth access
                string tokenURL = Url.Absolute(Url.Content("~/token"));
                await TokenHolder.SetBearerTokenFromOAuth(tokenURL, model.UserName, model.Password);

#if !DEBUG
            }
#endif

                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, change to shouldLockout: true
                var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout : false);

                switch (result)
                {
                case SignInStatus.Success:
                    ICustomUser usr = await UserManager.FindByNameAsync(model.UserName);

                    return(HandleAfterPasswordSuccess(usr, model, returnUrl));

                //case SignInStatus.LockedOut:
                //return View("Lockout");
                //case SignInStatus.RequiresVerification:   //this is for 2 factor validation
                //return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
                case SignInStatus.Failure:
                default:
                    ModelState.AddModelError("", "Invalid login attempt.");
                    return(View(model));
                }
            }
            else
            {
                return(View(model));
            }
        }
Пример #2
0
        public static string GetPasswordAfterHashing(string passwordToHash, ICustomUser usr)
        {
            string providedPasswordAfterHash = passwordToHash;

            if (!string.IsNullOrEmpty(passwordToHash))
            {
                if (usr != null)
                {
                    if (usr.PasswordIterationCount > 0 && usr.PasswordSalt != null)
                    {
                        providedPasswordAfterHash = CustomEncrypt.PBKDF2HashedPassword(passwordToHash, usr.PasswordSalt, usr.PasswordIterationCount);
                    }
                    else
                    {
                        throw new InvalidOperationException("no salt or password iteration found");
                    }
                }
                else
                {
                    throw new InvalidOperationException("usr not declared");
                }
            }
            return(providedPasswordAfterHash);
        }
 private ActionResult HandleAfterPasswordSuccess(ICustomUser usr, LogOnModel mdl, string returnUrl)
 {
     //random section here to do things to flush out the user or their settings.  right now this is merely a placeholder
     return(RedirectToHome(returnUrl));
 }
Пример #4
0
 static void GetProxy(ICustomUser proxy)
 {
     proxy.GetFuelStatus();
     proxy.ShowMeTheLocation();
 }