public async Task <ActionResult> Login(LoginInfo loginInfo) { if (!ModelState.IsValid) { return(Json(new AjaxResult("提交信息验证失败", AjaxResultType.Error))); } if (!SecurityHelper.CheckVerify(loginInfo.VerifyCode, true)) { return(Json(new AjaxResult("验证码错误,请刷新重试", AjaxResultType.Error))); } OperationResult <User> result = await IdentityContract.Login(loginInfo, true); if (!result.Successed) { return(Json(result.ToAjaxResult())); } User user = result.Data; await SignInManager.SignInAsync(user, loginInfo.Remember, true); IList <string> roles = await UserManager.GetRolesAsync(user.Id); var data = new { User = new { UserId = user.Id, user.UserName, user.NickName, user.Email, UserRole = roles.ExpandAndToString() }, SessionId = Session.SessionID }; return(Json(new AjaxResult("登录成功", AjaxResultType.Success, data))); }
public async Task <ActionResult> Register(RegisterViewModel model) { model.CheckNotNull(nameof(model)); if (Session["Reg_EmailCode"] == null || Session["Reg_EmailCode"].ToString() != model.EmailCode) { return(Json(new AjaxResult("验证码错误", AjaxResultType.Error))); } UserInputDto dto = model.MapTo <UserInputDto>(); dto.NickName = dto.UserName; dto.RecommendId = dto.RecommendId == 0 ? 1 : dto.RecommendId; dto.EmailConfirmed = true; //邮箱通过验证 OperationResult result = await IdentityContract.CreateUsers(dto); if (result.ResultType == OperationResultType.Success) { //初始化用户角色 User newuser = IdentityContract.Users.SingleOrDefault(u => u.UserName == dto.UserName); if (newuser != null) { UserRoleMapInputDto mapDto = new UserRoleMapInputDto() { UserId = newuser.Id, RoleId = 2 }; result = await IdentityContract.CreateUserRoleMaps(mapDto); if (!result.Successed) { return(Json(new AjaxResult(result.Message, AjaxResultType.Error))); } } #region 用户登录 LoginInfo loginInfo = new LoginInfo { UserName = dto.UserName, Password = dto.Password, Remember = false }; OperationResult <User> loginresult = await IdentityContract.Login(loginInfo, true); if (loginresult.ResultType == OperationResultType.Success) { User user = loginresult.Data; AuthenticationManager.SignOut(); await SignInManager.SignInAsync(user, loginInfo.Remember, true); } #endregion return(Json(new AjaxResult("登录成功", AjaxResultType.Success))); } else { return(Json(new AjaxResult(result.Message, AjaxResultType.Error))); } }
public async Task <IHttpActionResult> Login(LoginInfo loginInfo) { Logger.Info("{0}开始登陆", loginInfo.UserName); var result = await IdentityContract.Login(loginInfo, false); OperationResult createClientResult = new OperationResult(); OperationResult createClientSecretResult = new OperationResult(); if (result.Successed) { OAuthClientStore oAuthClientStore = ServiceProvider.GetService <OAuthClientStore>(); OAuthClientRefreshTokenStore oAuthClientRefreshTokenStore = ServiceProvider.GetService <OAuthClientRefreshTokenStore>(); OAuthClient oAuthClient = new OAuthClient(); OAuthClientInputDto clientDto = new OAuthClientInputDto() { Name = loginInfo.UserName, OAuthClientType = OAuthClientType.Application, Url = "http://localhost:13800/", LogoUrl = "http://localhost:13800/", RedirectUrl = "http://localhost:13800/" }; try { createClientResult = await oAuthClientStore.CreateClient(clientDto); } catch (Exception ex) { Logger.Error("CreateClient错误:" + ex.ToString()); } if (createClientResult.Successed) { oAuthClient = oAuthClientStore.GetOAuthClient(clientDto); OAuthClientSecretInputDto secretDto = new OAuthClientSecretInputDto() { Type = "Test Type", Remark = "Remark", ClientId = oAuthClient.Id, }; try { createClientSecretResult = await oAuthClientStore.CreateClientSecret(secretDto); } catch (Exception ex) { Logger.Error("CreateClientSecret错误:" + ex.ToString()); } if (createClientSecretResult.Successed) { OAuthClientSecret oAuthClientSecret = ClientSecretRepository.Entities.Where(x => x.Client.Id == oAuthClient.Id).FirstOrDefault(); ClientAndSecretData data = new ClientAndSecretData(); data.ClientId = oAuthClient.ClientId; data.ClientSecret = oAuthClientSecret.Value; result.Message = JsonHelper.ToJson(data); return(Json(new OperationResult(OperationResultType.Success, JsonHelper.ToJson(data), result.Data))); } else { return(Json(new OperationResult(OperationResultType.Error, "创建Client Secret失败!"))); } } else { return(Json(new OperationResult(OperationResultType.Error, "创建Client失败!"))); } } else { return(Json(result)); } }