Beispiel #1
0
        protected override async Task <AuthenticateResult> HandleAuthenticateAsync()
        {
            if (!Request.Headers.ContainsKey(" Authorization "))
            {
                return(AuthenticateResult.Fail(" Wymagany nagłówek Authorization! "));
            }

            var authHeader       = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
            var credentialsBytes = Convert.FromBase64String(authHeader.Parameter);
            var credentials      = Encoding.UTF8.GetString(credentialsBytes).Split(":");

            //credentials[0]- login ; credentials[1]- pass;
            if (credentials.Length != 2)
            {
                return(AuthenticateResult.Fail("Złe dane"));
            }
            if (!service.CheckCredential(credentials[0], credentials[1]))
            {
                return(AuthenticateResult.Fail("Zły login lub hasło"));
            }

            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1"),
                new Claim(ClaimTypes.Name, "StudentName"),
                new Claim(ClaimTypes.Role, "admin"),
            };
            var identity = new ClaimsIdentity(claims, Scheme.Name);

            return(AuthenticateResult.Success(null));
        }
        protected override async Task <AuthenticateResult> HandleAuthenticateAsync()
        {
            if (!Request.Headers.ContainsKey("Authorization"))
            {
                return(AuthenticateResult.Fail("Brak nagłówka Authorization"));
            }

            var authHeader       = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
            var credentialsBytes = Convert.FromBase64String(authHeader.Parameter);
            var credentials      = Encoding.UTF8.GetString(credentialsBytes).Split(":");

            if (credentials.Length != 2)
            {
                return(AuthenticateResult.Fail("Cos nie halo"));
            }
            if (!service.CheckCredential(credentials[0], credentials[1]))
            {
                return(AuthenticateResult.Fail("zly login lub haslo"));
            }

            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1"),
                new Claim(ClaimTypes.Name, "jan123"),
                new Claim(ClaimTypes.Role, "admin"),
                new Claim(ClaimTypes.Role, "student")
            };

            var identity  = new ClaimsIdentity(claims, Scheme.Name); //Basic, ...
            var principal = new ClaimsPrincipal(identity);
            var ticket    = new AuthenticationTicket(principal, Scheme.Name);

            return(AuthenticateResult.Success(ticket));
        }
Beispiel #3
0
        protected override async Task <AuthenticateResult> HandleAuthenticateAsync()
        {
            if (!Request.Headers.ContainsKey("Authorization"))
            {
                return(AuthenticateResult.Fail("Nie ma nagłówka 'Authorization' !!!"));
            }

            var authHeader       = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
            var credentialsBytes = Convert.FromBase64String(authHeader.Parameter);
            var credentials      = Encoding.UTF8.GetString(credentialsBytes).Split(":");

            //credentials[0]- login ; credentials[1]- pass;
            if (credentials.Length != 2)
            {
                return(AuthenticateResult.Fail("Incorrect authorization value"));
            }
            if (!_service.CheckCredential(credentials[0], credentials[1]))
            {
                return(AuthenticateResult.Fail("Wrong username or password"));
            }

            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1"),
                new Claim(ClaimTypes.Name, "StudentName"),
                new Claim(ClaimTypes.Role, "admin"),
            };
            var identity = new ClaimsIdentity(claims, Scheme.Name); // calimy, schemat z naszej nad klasy

            return(AuthenticateResult.Success(null));
        }
Beispiel #4
0
        protected override async Task <AuthenticateResult> HandleAuthenticateAsync()
        {
            if (!Request.Headers.ContainsKey("Authorization"))
            {
                return(AuthenticateResult.Fail("Missing authorization header"));
            }

            var authHeader       = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
            var credentialsBytes = Convert.FromBase64String(authHeader.Parameter);
            var credentials      = Encoding.UTF8.GetString(credentialsBytes).Split(":");

            if (credentials.Length != 2)
            {
                return(AuthenticateResult.Fail("Incorrect authorization header value"));
            }
            if (!service.CheckCredential(credentials[0], credentials[1]))
            {
                return(AuthenticateResult.Fail("Incerrect login or password"));
            }

            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1"),
                new Claim(ClaimTypes.Name, "pawel154"),
                new Claim(ClaimTypes.Role, "admin"),
            };

            var identity = new ClaimsIdentity(claims, Scheme.Name);

            return(AuthenticateResult.Success(null));
        }
Beispiel #5
0
        public IActionResult HandleAuthenticateAsync(LoginRequest loginRequest)
        {
            if (!_dbService.CheckCredential(loginRequest.login, loginRequest.password))
            {
                return(new BadRequestResult());
            }

            return(new AcceptedResult());
        }
Beispiel #6
0
        public IActionResult Login(LoginRequest req)
        {
            if (!_service.CheckCredential(req.username, req.password))
            {
                return(StatusCode(403));
            }

            var user = _service.GetLoggedStudent(req.username, req.password);

            if (user == null)
            {
                return(StatusCode(403));
            }

            Console.WriteLine(user.FirstName, user.IndexNumber);

            var claims = new[]
            {
                new Claim(type: ClaimTypes.NameIdentifier, user.IndexNumber),
                new Claim(ClaimTypes.Role, "employee"),
                new Claim(ClaimTypes.Name, user.FirstName),
            };
            var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["SecretKey"]));
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var token = new JwtSecurityToken
                        (
                issuer: "Gakko",
                audience: "Students",
                claims: claims,
                expires: DateTime.Now.AddMinutes(20),
                signingCredentials: creds
                        );
            var refreshToken = Guid.NewGuid();

            _service.AddRefreshTokenToUser(refreshToken.ToString(), user.IndexNumber);
            return(Ok(new {
                accessToken = new JwtSecurityTokenHandler().WriteToken(token),
                refreshToken
            }));
        }