public ActionResult LogOn(UserModel model, string returnUrl) { return LogOnWithLoginPassword(model.Login, model.Password, returnUrl); }
public ActionResult LogOn(UserModel model, string returnUrl) { if (ModelState.IsValid) { string salt, passwordHash; switch (AppConfiguration.AuthenticationMethod) { case AuthenticationType.Native: salt = RandomHelper.GetRandomString(10); passwordHash = CryptHelper.GetSha512Base64Hash(salt + CryptHelper.GetSha512Base64Hash(model.Login.ToLower() + model.Password)); break; default: salt = string.Empty; passwordHash = model.Password; break; } LoginResult loginResult = ServiceProxySingleton.Instance.Logon(new LogonArg(model.Login.ToLower(), passwordHash, salt)); if (loginResult.IsSuccess()) { Session.RemoveAll(); Session[Constants.SESSION_INSTANCE_ID] = loginResult.InstanceId; SessionHelper.InstanceName = GetViewInstanceName(loginResult.InstanceName); Session[Constants.SESSION_AUTH_INFO] = loginResult.Token; SessionHelper.UserName = model.Login; SessionHelper.LastUsedInstanceId = loginResult.LastUsedInstanceId; Session[Constants.SESSION_FORCED_LOGOUT] = null; SessionHelper.Permissions = loginResult.Access; TempData["ReturnUrl"] = returnUrl; return RedirectToAction("LogOn", "Login"); } ModelState.AddModelError("", loginResult.ErrorMessage); } // If we got this far, something failed, redisplay form return View(model); }