public async Task <ActionResult <Artist> > PostArtist(Artist artist) { if (!Authentication.AuthenticateAsync(Request).Result) { return(Unauthorized()); } var payload = await GoogleServices.GetTokenPayloadAsync(Request.Headers["Authorization"].First()); UserID existingUser = _context.UserIDs.SingleOrDefault(u => u.GoogleIdToken == payload.Subject); if (existingUser != null) { artist.UserId = existingUser; } else { artist.UserId = new UserID() { GoogleIdToken = payload.Subject } }; _context.Artists.Add(artist); await _context.SaveChangesAsync(); return(CreatedAtAction("GetArtist", new { id = artist.Id }, artist)); }
public async Task <ActionResult> OAuth2Callback(string provider, string returnUrl, string error = null) { if (error != null) { return(Redirect(Url.Content("~/account/signin") + (!String.IsNullOrWhiteSpace(error) ? "?error=" + Uri.EscapeDataString(error) : ""))); } var result = await Authentication.AuthenticateAsync(DefaultAuthenticationTypes.ExternalCookie); if (!result.Identity.IsAuthenticated || !IsAuthorized(result.Identity)) { return(Redirect(Url.Content("~/account/signin") + (!String.IsNullOrWhiteSpace(error) ? "?error=" + Uri.EscapeDataString(error) : ""))); } Authentication.SignOut(DefaultAuthenticationTypes.ExternalCookie); var claims = result.Identity.Claims.ToList(); claims.Add(new Claim(ClaimTypes.AuthenticationMethod, provider)); var ci = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie); Authentication.SignIn(ci); return(RedirectToLocal(returnUrl)); }
private async Task <ExternalLoginInfo> AuthenticationManager_GetExternalLoginInfoAsync_WithExternalBearer() { ExternalLoginInfo loginInfo = null; var result = await Authentication.AuthenticateAsync(DefaultAuthenticationTypes.ExternalBearer); if (result != null && result.Identity != null) { var idClaim = result.Identity.FindFirst(ClaimTypes.NameIdentifier); // var accessToken = loginInfo.ExternalIdentity.Claims.Where(c => c.Type.Equals("urn:google:accesstoken")).Select(c => c.Value).FirstOrDefault(); //Uri apiRequestUri = new Uri("https://www.googleapis.com/oauth2/v2/userinfo?access_token=" + accessToken); ////request profile image //using (var webClient = new System.Net.WebClient()) //{ // var json = webClient.DownloadString(apiRequestUri); // dynamic result = JsonConvert.DeserializeObject(json); // userPicture = result.picture; //} if (idClaim != null) { loginInfo = new ExternalLoginInfo() { DefaultUserName = result.Identity.Name == null ? "" : result.Identity.Name.Replace(" ", ""), Email = result.Identity.Name == null ? "" : result.Identity.Name.Replace(" ", ""), Login = new UserLoginInfo(idClaim.Issuer, idClaim.Value) }; } } return(loginInfo); }
public async Task <IActionResult> Login(string userID, string password) { Customer loggedInCustomer = await Authentication.AuthenticateAsync(_context, userID, password); var login = await _context.Logins.FirstOrDefaultAsync(x => x.UserID == userID); if (login?.Status == LoginStatus.Locked) { ModelState.AddModelError("LoginFailed", "This account has been locked for 1 minute"); return(View(nameof(Index), new Login { UserID = userID })); } if (loggedInCustomer == null) { ModelState.AddModelError("LoginFailed", "Login failed, please try again."); return(View(nameof(Index), new Login { UserID = userID })); } // Set session for loggedIn customer. HttpContext.Session.SetInt32(nameof(Customer.CustomerID), loggedInCustomer.CustomerID); HttpContext.Session.SetString(nameof(Customer.Name), loggedInCustomer.Name); return(RedirectToAction("Index", "ATM")); }
public async Task <ActionResult <IEnumerable <SocialMedia> > > GetSocialMedias() { DBInitializer.Run(); if (!Authentication.AuthenticateAsync(Request).Result) { return(Unauthorized()); } return(await _context.SocialMedias.ToListAsync()); }
public async Task <ActionResult <SocialMedia> > GetSocialMedia(int id) { if (!Authentication.AuthenticateAsync(Request).Result) { return(Unauthorized()); } var socialMedia = await _context.SocialMedias.FindAsync(id); if (socialMedia == null) { return(NotFound()); } return(socialMedia); }
public async Task <ActionResult <Artist> > GetArtist(int id) { if (!Authentication.AuthenticateAsync(Request).Result) { return(Unauthorized()); } var artist = await _context.Artists.Include(a => a.ArtistSocialMedias).Include(h => h.ArtistGenres).SingleOrDefaultAsync(a => a.Id == id); if (artist == null) { return(NotFound()); } return(artist); }
public async Task <ActionResult <Review> > GetReview(int id) { if (!Authentication.AuthenticateAsync(Request).Result) { return(Unauthorized()); } var review = await _context.Reviews.FindAsync(id); if (review == null) { return(NotFound()); } return(review); }
public async Task <ActionResult <Genre> > GetGenre(int id) { if (!Authentication.AuthenticateAsync(Request).Result) { return(Unauthorized()); } var genre = await _context.Genres.FindAsync(id); if (genre == null) { return(NotFound()); } return(genre); }
public async Task <ActionResult <Participation> > GetParticipation(int id) { if (!Authentication.AuthenticateAsync(Request).Result) { return(Unauthorized()); } var participation = await _context.Participations.FindAsync(id); if (participation == null) { return(NotFound()); } return(participation); }
public async Task <ActionResult <Event> > GetEvent(int id) { if (!Authentication.AuthenticateAsync(Request).Result) { return(Unauthorized()); } var @event = await _context.Events.Include(h => h.EventGenres).SingleOrDefaultAsync(a => a.Id == id); if (@event == null) { return(NotFound()); } return(@event); }
async Task AuthenticateAsync(string scheme) { AuthResult result = null; try { result = await Authentication.AuthenticateAsync( new Uri("myapp://"), new Uri("https://myapp.com"), scheme); } catch (Exception ex) { Console.WriteLine(ex); } HandleResult(result); }
private async Task <ExternalLoginInfo> AuthenticationManager_GetExternalLoginInfoAsync_WithExternalBearer() { ExternalLoginInfo loginInfo = null; var result = await Authentication.AuthenticateAsync(DefaultAuthenticationTypes.ExternalBearer); if (result != null && result.Identity != null) { var idClaim = result.Identity.FindFirst(ClaimTypes.NameIdentifier); if (idClaim != null) { loginInfo = new ExternalLoginInfo() { DefaultUserName = result.Identity.Name == null ? "" : result.Identity.Name.Replace(" ", ""), Login = new UserLoginInfo(idClaim.Issuer, idClaim.Value) }; } } return(loginInfo); }
/// <summary> /// /// </summary> /// <returns></returns> private async Task <ExternalLoginInfo> AuthenticationManager_GetExternalLoginInfoAsync_WithExternalBearer() { ExternalLoginInfo loginInfo = null; var result = await Authentication.AuthenticateAsync(DefaultAuthenticationTypes.ExternalBearer); var accessToken = result.Identity.FindFirstValue("FacebookAccessToken"); var fb = new FacebookClient(accessToken); dynamic myInfo = fb.Get("/me?fields=email,first_name,last_name,gender"); if (result != null && result.Identity != null) { var idClaim = result.Identity.FindFirst(ClaimTypes.NameIdentifier); if (idClaim != null) { loginInfo = new ExternalLoginInfo() { DefaultUserName = result.Identity.Name == null ? "" : result.Identity.Name.Replace(" ", ""), Login = new UserLoginInfo(idClaim.Issuer, idClaim.Value) }; } } return(loginInfo); }
/// <summary> /// Authenticates the band. /// </summary> /// <exception cref="AccessDeniedException">Device can't be accessed due to being accessed by something else.</exception> public async Task AuthenticateBandAsync() => await _authentication.AuthenticateAsync();