Exemplo n.º 1
0
        /// <summary>
        /// 创建新用户
        /// </summary>
        /// <param name="data">用户数据</param>
        /// <returns>新用户ID</returns>
        public async Task <int> CreateUserAsync([NotNull] PureUserData data)
        {
            UserCreateRequest request = new UserCreateRequest
            {
                Connection  = configuration.GetAuth0Config(ConfigurationKeyConstants.Auth0Connection),
                Email       = data.Email,
                PhoneNumber = data.PhoneNumber
            };

            User user = await userClient.CreateAsync(request);

            if (user == null)
            {
                return(-1);
            }

            int nextId = dataContext.UserDatas.Select((data) => data.ID).Max() + 1;

            // 获取可用身份列表
            Role[] availableRoles = await roleGetter.GetAvailableRoles();

            // 去除重复项与不在身份列表内的项
            string[] roles = data.Role.Split(' ').Distinct()
                             .Where((name) => availableRoles.Any((role) => role.Name == name)).ToArray();

            await userClient.AssignRolesAsync(user.UserId, new AssignRolesRequest { Roles = roles });

            data.Role = roles.Aggregate((r1, r2) => r1 + ' ' + r2);

            dataContext.Add <UserData>(data.ToUserData(nextId, user.UserId));
            dataContext.SaveChanges();
            return(nextId);
        }
        public IActionResult Post([FromBody] UserData udata)
        {
            var userData = _userDataContext.Add(udata).Entity;

            _userDataContext.SaveChanges();
            if (userData != null && userData.Id > 0)
            {
                return(Ok(userData.Id));
            }
            return(BadRequest());
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Create([Bind("Id,Username,Email,SocialSecurityNumber,Password")] Account account)
        {
            if (ModelState.IsValid)
            {
                _context.Add(account);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(account));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Signup([FromBody] Login val)
        {
            UserDataContext userDatadb = new UserDataContext();
            UserNContext    userNamedb = new UserNContext();
            PassContext     passworddb = new PassContext();

            //At this stage we have no userData besides the ID
            //Creating this object automatically generates an ID
            UserDataDB userData = new UserDataDB();

            //Create new username and password database entries with the same key
            UserNDB userName = new UserNDB(userData.UserId);

            userName.Email    = val.email;
            userName.UserName = val.username;
            PassDB password = new PassDB(userData.UserId);

            password.Password = val.password;

            userDatadb.Add(userData);
            userNamedb.Add(userName);
            passworddb.Add(password);

            //update the databases
            try
            {
                userDatadb.SaveChanges();
                userNamedb.SaveChanges();
                passworddb.SaveChanges();
            }
            catch (DbUpdateException)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }

            return(Ok(200));

            //string newUser = JsonSerializer.Serialize(val);
            //bool complete = await be.incomming(1, 3, newUser);
            //bool complete = true;
            //if (complete)
            //{
            //    return Ok(200);
            //}
            //return BadRequest(400);
        }