public AuthHandler(
     NotificationContext notification,
     IUserManager userManager,
     AuthValidator validator) : base(notification, userManager)
 {
     _validator = validator;
 }
        public ActionResult Create([Bind(Include = "Email,Password")] Login login)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    AuthValidator authValidator = new AuthValidator();
                    tbl_empoyee   tbl_Empoyee   = authValidator.IsvalidUser(login);

                    Session["Email"] = tbl_Empoyee.email;
                    Session["Role"]  = tbl_Empoyee.tbl_role.role_name;
                    Session["Name"]  = tbl_Empoyee.emp_name;

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    return(View(login));
                }
            }
            catch (Exception exception)
            {
                ViewBag.errormeaasge = exception.Message;
                return(View());
            }
        }
示例#3
0
        public async Task <object> Register([FromBody] RegisterDto model)
        {
            if (!ModelState.IsValid)
            {
                var errrors = AuthValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errrors));
            }
            var user = new IdentityUser
            {
                UserName = model.Email,
                Email    = model.Email
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                await _signInManager.SignInAsync(user, false);

                return(Ok(await GenerateJwtToken(model.Email, user)));
            }
            else
            {
                return(BadRequest(result.Errors));
            }
        }
示例#4
0
        public async Task <IActionResult> AddTask([FromBody] TaskDto task)
        {
            if (!ModelState.IsValid)
            {
                var errrors = AuthValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errrors));
            }
            try
            {
                string userId = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;

                DAL.Entities.Task newtask = new DAL.Entities.Task()
                {
                    ApplicationUserId = userId, Category = _context.Categories.FirstOrDefault(x => x.CategoryName == task.Category), date = task.date, Description = task.Description, Name = task.Name, IsComplited = task.IsComplited
                };
                _context.Tasks.Add(newtask);
                await _context.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
示例#5
0
        public async Task <Authentication.OutModel> Authentication([FromBody] Authentication.InModel inModel)
        {
            AuthValidator validationRules = new AuthValidator();
            await validationRules.ValidateAndThrowAsync(inModel);

            return(await _iAccessControlService.Authentication(inModel));
        }
 public ActionResult Index()
 {
     if (AuthValidator.IsAdministrator(Session["Email"].ToString(), Session["Role"].ToString()))
     {
         return(RedirectToAction("AdminIndex", "Home"));
     }
     else
     {
         return(View());
     }
 }
示例#7
0
        public void Should_ReturnTrue_When_UseValalidAsync(string authModel)
        {
            //Arrange
            var     validator = new AuthValidator();
            AuthDTO dto       = GetTestDTOModel(authModel);

            //Act
            var validationResult = validator.Validate(dto);

            //Assert
            Assert.True(validationResult.IsValid);
        }
示例#8
0
 // GET: tbl_empoyee
 public ActionResult Index()
 {
     if (AuthValidator.IsAdministrator(Session["Email"].ToString(), Session["Role"].ToString()))
     {
         var tbl_empoyee = db.tbl_empoyee.Include(t => t.tbl_role);
         return(View(tbl_empoyee.ToList()));
     }
     else
     {
         return(RedirectToAction("index", "Login"));
     }
 }
示例#9
0
        public static async Task <HttpResponseMessage> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req, TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");

            // Authentication boilerplate code start
            ClaimsPrincipal principal;

            if ((principal = await AuthValidator.ValidateTokenAsync(req.Headers.Authorization)) == null)
            {
                return(req.CreateResponse(HttpStatusCode.Unauthorized));
            }
            // Authentication boilerplate code end

            // parse query parameter
            string queryStr = req.RequestUri.Query;

            if (!String.IsNullOrEmpty(queryStr))
            {
            }
            string name = req.RequestUri.Query;

            if (!string.IsNullOrEmpty(name) && name.StartsWith("?"))
            {
                name = name.Substring(1);
            }

            // Get request body
            dynamic data = await req.Content.ReadAsAsync <object>();

            // Set name to query string or body data
            name = name ?? data?.name;

            return(name == null
                ? new HttpResponseMessage(HttpStatusCode.BadRequest)
            {
                Content = new StringContent(@"Please pass a name on the query string or in the request body")
            }
                : new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent($"Hello {name}")
            });
        }
示例#10
0
        public async Task <object> Login([FromBody] LoginDto model)
        {
            if (!ModelState.IsValid)
            {
                var errrors = AuthValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errrors));
            }
            var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, false, false);

            if (result.Succeeded)
            {
                var appUser = new IdentityUser
                {
                    Email = model.Email
                };
                return(await GenerateJwtToken(model.Email, appUser));
            }
            else
            {
                return(BadRequest(new { invalid = "You entered an invalid credentials!" }));
            }
        }
        public async Task <Authentication.Models.OutModel> Authentication(Authentication.Models.InModel inModel,
                                                                          CancellationToken cancellationToken = default)
        {
            AuthValidator authValidator = new AuthValidator();
            await authValidator.ValidateAndThrowAsync(inModel);

            var user = await _dbContext.Users.SingleOrDefaultAsync(x => x.Email == inModel.Email, cancellationToken);

            if (user == null)
            {
                throw new InvalidOperationException("User with email not exist.");
            }
            if (!Cryptor.VerifyPasswordHash(inModel.PasswordHash, user.PasswordHash))
            {
                throw new InvalidOperationException("Email or password is incorrect.");
            }

            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(_appSettings.Secret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, user.Id.ToString())
                }),
                Expires            = DateTime.UtcNow.AddDays(7),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key),
                                                            SecurityAlgorithms.HmacSha256Signature)
            };
            var token = tokenHandler.CreateToken(tokenDescriptor);

            user.Token = tokenHandler.WriteToken(token);
            return(new Authentication.Models.OutModel {
                IdUser = user.Id,
                UserName = user.Username, Token = user.Token
            });
        }