コード例 #1
0
        public async Task <IActionResult> UserEdit(UserCodeConfiermModelView model)
        {
            try
            {
                var Logger = await userManager.FindByIdAsync(User.FindFirst("Id")?.Value);

                if (Logger != null)
                {
                    if (await userManager.IsInRoleAsync(Logger, "User") && !Logger.Block)
                    {
                        return(Ok());
                    }
                    else
                    {
                        return(Unauthorized());
                    }
                }
                else
                {
                    return(Unauthorized());
                }
            }
            catch (Exception e)
            {
                return(BadRequest(new IdentityError()
                {
                    Code = e.Message.ToString(), Description = e.InnerException.ToString()
                }));
            }
        }
コード例 #2
0
        public async Task <IActionResult> Confierm(UserCodeConfiermModelView model)
        {
            if (ModelState.IsValid)
            {
                var User = await userManager.FindByNameAsync(model.Email);

                if (User != null)
                {
                    if (await userManager.IsInRoleAsync(User, "User") && User.Confirmed != Confirmed.block && !User.Block)
                    {
                        var Code = _contect.UserCodeConfierm.SingleOrDefault(i => i.UserId == User.Id && i.Code == model.Code && i.ExperdDate >= DateTime.Now);
                        if (Code != null)
                        {
                            User.Confirmed = Confirmed.approved;
                            await userManager.UpdateAsync(User);

                            _contect.UserCodeConfierm.Remove(Code);
                            _contect.SaveChanges();
                            // login

                            //get Token :)
                            var claim = new[]
                            {
                                new Claim("Id", User.Id),

                                new Claim("Rolas", userManager.GetRolesAsync(User).Result.FirstOrDefault())
                            };
                            var signinKey = new SymmetricSecurityKey(
                                Encoding.UTF8.GetBytes(_configuration["Jwt:SigningKey"]));

                            int expiryInMinutes = Convert.ToInt32(_configuration["Jwt:ExpiryInHouer"]);

                            var token = new JwtSecurityToken(
                                claims: claim,
                                issuer: _configuration["Jwt:Site"],
                                audience: _configuration["Jwt:Site"],
                                expires: DateTime.UtcNow.AddHours(expiryInMinutes),
                                signingCredentials: new SigningCredentials(signinKey, SecurityAlgorithms.HmacSha256)
                                );
                            // get User

                            var user = _contect.Users.Include(i => i.UserIdentity).SingleOrDefault(i => i.id == User.Id);
                            if (user != null)
                            {
                                return(Ok(new
                                {
                                    token = new JwtSecurityTokenHandler().WriteToken(token),
                                    expiration = token.ValidTo,
                                    user.id,
                                    user.Name,
                                    user.AName,
                                    user.UserIdentity.Email,
                                    user.UserIdentity.PhoneNumber,
                                    Roles = userManager.GetRolesAsync(User).Result.FirstOrDefault()
                                }));
                            }
                            else
                            {
                                return(Unauthorized());
                            }
                        }

                        else
                        {
                            return(BadRequest());
                        }
                    }
                    else
                    {
                        return(NotFound());
                    }
                }
                else
                {
                    return(BadRequest());
                }
            }
            else
            {
                return(BadRequest());
            }
        }