public IServerResponse<Session> SignOn(SignOnInfo signOnInfo) { return serverProvider.SignOn(signOnInfo); }
public virtual ActionResult SignOn(SignOnInfo model, string redirect = "/") { if (ModelState.IsValid) { var response = AuthHelper.SignOn(model.AccountOrEmailOrMobile, model.Password, Request.Form["RememberMe"].ConvertTo<bool>(false), Request.Form["Captcha"]); if (response.Status == ResponseStatus.Success) { return Redirect(redirect); } else { ViewBag.Message = response.Message; } } else { ModelState.AddModelError("", DAF.SSO.Resources.Locale(o => o.SignOnFailed)); } ViewBag.HasTriedLogin = true; return View(model); }
public IServerResponse<Session> SignOn(SignOnInfo signOnInfo) { var client = GetClient(signOnInfo.ClientId); var encryptor = GetClientEncryptor(client); var hpwd = pwdEncryptor.Encrypt(signOnInfo.Password); var obj = repoUser.Query(o => (o.Account == signOnInfo.AccountOrEmailOrMobile || o.Email == signOnInfo.AccountOrEmailOrMobile || o.Mobile == signOnInfo.AccountOrEmailOrMobile) && o.Password == hpwd).FirstOrDefault(); ServerResponse<Session> response = new ServerResponse<Session>(); if (obj == null) { response.Status = ResponseStatus.Failed; response.Message = DAF.SSO.Resources.Locale(o => o.AccountNotFound); } else { switch (obj.Status) { case DataStatus.Deleted: response.Status = ResponseStatus.Failed; response.Message = DAF.SSO.Resources.Locale(o => o.AccountNotFound); break; case DataStatus.Locked: response.Status = ResponseStatus.Failed; response.Message = DAF.SSO.Resources.Locale(o => o.AccountLocked); break; case DataStatus.ReadOnly: response.Status = ResponseStatus.Failed; response.Message = DAF.SSO.Resources.Locale(o => o.AccountIsReadOnly); break; case DataStatus.Normal: default: response.Status = ResponseStatus.Success; break; } } if (response.Status == ResponseStatus.Success) { try { trans.BeginTransaction(); var serverSession = repoServerSession.Query(o => o.SessionId == signOnInfo.SessionId && o.CientId == client.ClientId && o.DeviceId == signOnInfo.DeviceId).FirstOrDefault(); if (serverSession == null) { serverSession = new ServerSession() { CientId = client.ClientId, SessionId = signOnInfo.SessionId, FromCientId = null, DeviceId = signOnInfo.DeviceId, DeviceInfo = signOnInfo.DeviceInfo, UserId = obj.UserId, AccessToken = randomGenerator.Generate(config.TokenAllowedChars, config.TokenLength), LastAccessTime = DateTime.Now, AccessTokenExpiryTime = DateTime.Now.AddMinutes(config.SessionExpiredTimeOutMunites) }; repoServerSession.Insert(serverSession); } else { if (serverSession.AccessTokenExpiryTime < DateTime.Now) { serverSession.AccessToken = randomGenerator.Generate(config.TokenAllowedChars, config.TokenLength); } serverSession.LastAccessTime = DateTime.Now; serverSession.AccessTokenExpiryTime = DateTime.Now.AddMinutes(config.SessionExpiredTimeOutMunites); repoServerSession.Update(serverSession); } trans.Commit(); response.Data = GetClientSession(client, obj, serverSession); } catch (Exception ex) { trans.Rollback(); response.Status = ResponseStatus.Failed; response.Message = ex.Message; } } return response; }
public static ServerResponse SignOn(string accountOrEmailOrMobile, string password, bool rememberMe = false, string captcha = null) { ServerResponse response = new ServerResponse(); var signOnInfo = new SignOnInfo() { ClientId = CurrentClient.ClientId, SessionId = HttpContext.Current.Session.SessionID, DeviceId = HttpContext.Current.Request.UserHostAddress, DeviceInfo = HttpContext.Current.Request.UserAgent, AccountOrEmailOrMobile = accountOrEmailOrMobile, Password = password, }; bool captchaPassed = true; try { if (!string.IsNullOrEmpty(captcha)) { var captchaGenerator = IocInstance.Container.Resolve<ICaptchaGenerator>(); if (captchaGenerator.Verify(signOnInfo.SessionId, captcha) == false) { captchaPassed = false; response.Status = ResponseStatus.Failed; response.Message = DAF.SSO.Resources.Locale(o => o.CaptchaNotCorrect); } } if (captchaPassed) { ISSOClientProvider scp = IocInstance.Container.Resolve<ISSOClientProvider>(); var r = scp.SignOn(signOnInfo); if (r.Status == ResponseStatus.Success) { response.Status = ResponseStatus.Success; if (rememberMe) { SetSessionCookie(); } } else { response.Status = ResponseStatus.Failed; response.Message = r.Message; } } } catch (Exception ex) { response.Status = ResponseStatus.Exception; response.Message = ex.Message; } return response; }
public IServerResponse SignOn(SignOnInfo signOnInfo) { Assert.IsNotNull(signOnInfo); Assert.IsStringNotNullOrEmpty(signOnInfo.AccountOrEmailOrMobile); Assert.IsStringNotNullOrEmpty(signOnInfo.Password); IServerResponse<Session> response = serverProvider.SignOn(signOnInfo); if (response.Status == ResponseStatus.Success && response.Data != null) { SaveSession(response.Data); } return response; }
public IServerResponse SignOn(SignOnInfo signOnInfo) { Assert.IsNotNull(signOnInfo); Assert.IsStringNotNullOrEmpty(signOnInfo.AccountOrEmailOrMobile); Assert.IsStringNotNullOrEmpty(signOnInfo.Password); IServerResponse<Session> response = null; var chanel = CreateChannel(); chanel.Call(p => { response = p.SignOn(signOnInfo); if (response.Status == ResponseStatus.Success && response.Data != null) { SaveSession(response.Data); } }); return response; }