示例#1
0
        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)));
        }
示例#2
0
        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)));
            }
        }
示例#3
0
        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));
            }
        }