protected override async Task <AuthenticateResult> HandleAuthenticateAsync()//overrrida metode koja dodje uz authHandler { if (!Request.Headers.ContainsKey("Authorization")) { return(AuthenticateResult.Fail("Missing Authorization Header")); } Korisnik user; try { var authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialBytes = Convert.FromBase64String(authHeader.Parameter); var credentials = Encoding.UTF8.GetString(credentialBytes).Split(':'); var username = credentials[0]; var password = credentials[1]; user = _userService.Authenticiraj(username, password); } catch { return(AuthenticateResult.Fail("Invalid Authorization Header")); } //var test = user.KorisniciUloges; if (user == null) { return(AuthenticateResult.Fail("Invalid Username or Password")); } //CLAIM nesto sto tvrdimo da posjedujemo,tvrdimo da je nase ime prezime xy itd var claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, user.KorisnickoIme), new Claim(ClaimTypes.Name, user.Ime), }; //identiFajeri foreach (var role in user.KorisniciUloges)//sys.nullRef exc { claims.Add(new Claim(ClaimTypes.Role, role.Uloga.Naziv)); } var identity = new ClaimsIdentity(claims, Scheme.Name); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, Scheme.Name); return(AuthenticateResult.Success(ticket)); }
protected override async Task <AuthenticateResult> HandleAuthenticateAsync() { if (!Request.Headers.ContainsKey("Authorization")) { return(AuthenticateResult.Fail("Missing Authorization Header")); } Model.Korisnici user = null; try { var authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialBytes = Convert.FromBase64String(authHeader.Parameter); var credentials = Encoding.UTF8.GetString(credentialBytes).Split(':'); var username = credentials[0]; var password = credentials[1]; user = _userService.Authenticiraj(new KorisniciLoginRequest() { Username = username, Password = password }); } catch { return(AuthenticateResult.Fail("Invalid Authorization Header")); } if (user == null) { return(AuthenticateResult.Fail("Invalid Username or Password")); } var claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, user.KorisnickoIme), new Claim(ClaimTypes.Name, user.Ime), }; foreach (var role in user.KorisniciUloge) { claims.Add(new Claim(ClaimTypes.Role, role.Uloga.Naziv)); } var identity = new ClaimsIdentity(claims, Scheme.Name); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, Scheme.Name); return(AuthenticateResult.Success(ticket)); }
protected override async Task <AuthenticateResult> HandleAuthenticateAsync() { if (!Request.Headers.ContainsKey("Authorization")) { return(AuthenticateResult.Fail("Missing Authorization Header")); } OnlineGym_Model.Korisnik user = null; OnlineGym_Model.Clan clan = null; var context = ""; try { context = Request.Headers["Context"]; var authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialBytes = Convert.FromBase64String(authHeader.Parameter); var credentials = Encoding.UTF8.GetString(credentialBytes).Split(':'); var username = credentials[0]; var password = credentials[1]; if ("Clan".Equals(context)) { clan = _clanService.Authenticiraj(username, password); } else { user = _userService.Authenticiraj(username, password); } } catch (Exception e) { return(AuthenticateResult.Fail("Invalid Authorization Header")); } var claims = new List <Claim>(); if ("Clan".Equals(context)) { if (clan == null) { return(AuthenticateResult.Fail("Invalid Username or Password")); } } else { if (user == null) { return(AuthenticateResult.Fail("Invalid Username or Password")); } claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, user.KorisnickoIme), new Claim(ClaimTypes.Name, user.Ime), }; foreach (var role in user.KorisniciUloge) { claims.Add(new Claim(ClaimTypes.Role, role.Uloga.Naziv)); } } var identity = new ClaimsIdentity(claims, Scheme.Name); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, Scheme.Name); return(AuthenticateResult.Success(ticket)); }
public KorisniciVM Authenticiraj(string username, string password) { return(_service.Authenticiraj(username, password)); }
public Model.KorisniciModel Authenticate(string username, string password) { return(_service.Authenticiraj(username, password)); }