public HttpResponseMessage GetUserInfo() { CoffeeServicesEntities db = new CoffeeServicesEntities(); string id = User.Identity.GetUserId(); var hrm = new HttpResponseMessage(); var userDB = db.Users.FirstOrDefault(x => x.ID == id); Dictionary <string, object> user = new Dictionary <string, object>(); user.Add("ID", userDB.ID); user.Add("Account", userDB.Account); user.Add("DisplayName", userDB.DisplayName); user.Add("Rep", userDB.Rep); user.Add("Coin", userDB.Coin); user.Add("Avatar", userDB.Avatar); hrm.Content = new StringContent(JsonConvert.SerializeObject(user)); hrm.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); return(hrm); }
public List <Ship> Get() { CoffeeServicesEntities db = new CoffeeServicesEntities(); var listOfShips = new List <Ship>(); foreach (var ship in db.Ships) { listOfShips.Add(new Ship { ID = ship.ID, Price = ship.Price, Description = ship.Description, Max = ship.Max, Min = ship.Min, OfferPercent = ship.OfferPercent }); } return(listOfShips); }
public async Task <ActionResult> ExternalLoginCallback(string returnUrl) { var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { return(RedirectToAction("Login")); } CoffeeServicesEntities db = new CoffeeServicesEntities(); // Sign in the user with this external login provider if the user already has a login var user = await UserManager.FindAsync(loginInfo.Login); if (user != null) { var exist = db.Admins.FirstOrDefault(m => m.Name == user.UserName); if (exist != null) { var currentUser = UserManager.FindByName(user.UserName); var roleresult = UserManager.AddToRole(currentUser.Id, "Admin"); } await SignInAsync(user, isPersistent : false); return(RedirectToLocal(returnUrl)); } else { // If the user does not have an account, then prompt the user to create an account //return RedirectToAction("Index", "Home"); if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await AuthenticationManager.GetExternalLoginInfoAsync(); string id = info.ExternalIdentity.GetUserId(); var userz = new ApplicationUser() { UserName = info.ExternalIdentity.GetUserId(), Email = info.Email }; //var exist = db.Admins.FirstOrDefault(m => m.Name == id); //if (exist != null) //{ // var currentUser = UserManager.FindByName(user.UserName); // var roleresult = UserManager.AddToRole(userz.Id, "Admin"); //} var result = await UserManager.CreateAsync(userz); if (result.Succeeded) { result = await UserManager.AddLoginAsync(userz.Id, info.Login); if (result.Succeeded) { await SignInAsync(userz, isPersistent : false); return(RedirectToLocal(returnUrl)); } } } return(View("Login")); } }
public async Task <IHttpActionResult> GetExternalLogin(string provider, string error = null) { if (error != null) { return(Redirect(Url.Content("~/") + "#error=" + Uri.EscapeDataString(error))); } if (!User.Identity.IsAuthenticated) { return(new ChallengeResult(provider, this)); } ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity); if (externalLogin == null) { return(InternalServerError()); } if (externalLogin.LoginProvider != provider) { Authentication.SignOut(DefaultAuthenticationTypes.ExternalCookie); return(new ChallengeResult(provider, this)); } ApplicationUser user = await UserManager.FindAsync(new UserLoginInfo(externalLogin.LoginProvider, externalLogin.ProviderKey)); bool hasRegistered = user != null; if (hasRegistered) { Authentication.SignOut(DefaultAuthenticationTypes.ExternalCookie); ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(UserManager, OAuthDefaults.AuthenticationType); ClaimsIdentity cookieIdentity = await user.GenerateUserIdentityAsync(UserManager, CookieAuthenticationDefaults.AuthenticationType); UserManager.Delete(user); AuthenticationProperties properties = ApplicationOAuthProvider.CreateProperties(user.UserName); Authentication.SignIn(properties, oAuthIdentity, cookieIdentity); AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, new AuthenticationProperties()); DateTime currentUtc = DateTime.UtcNow; ticket.Properties.IssuedUtc = currentUtc; ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromDays(365)); string accessToken = Startup.OAuthOptions.AccessTokenFormat.Protect(ticket); Request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken); return(Redirect(new Uri("http://localhost:18179/Home/Signin?access_token=" + accessToken + "&expires=" + currentUtc.Add(TimeSpan.FromDays(365)).ToString("ddd, dd MMM yyyy HH:mm:ss 'GMT'")))); } else { IEnumerable <Claim> claims = externalLogin.GetClaims(); ClaimsIdentity identity = new ClaimsIdentity(claims, OAuthDefaults.AuthenticationType); //var claimsforUser = await UserManager.GetClaimsAsync(identity.GetUserId()); CoffeeServicesEntities db = new CoffeeServicesEntities(); string userID = identity.GetUserId(); var userDB = db.Users.FirstOrDefault(x => x.ID == userID); if (userDB == null) { string email = identity.FindFirstValue(ClaimTypes.Email); string avatar = "http://graph.facebook.com/" + identity.GetUserId() + "/picture"; db.Users.Add(new User { ID = identity.GetUserId(), Account = email, Avatar = avatar, DisplayName = identity.GetUserName(), Coin = 5000, Rep = 0, Role = "USER" }); db.SaveChanges(); } Authentication.SignIn(identity); AuthenticationTicket ticket = new AuthenticationTicket(identity, new AuthenticationProperties()); DateTime currentUtc = DateTime.UtcNow; ticket.Properties.IssuedUtc = currentUtc; ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromDays(365)); string accessToken = Startup.OAuthOptions.AccessTokenFormat.Protect(ticket); Request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken); return(Redirect(new Uri("http://localhost:18179/Home/Signin?access_token=" + accessToken + "&expires=" + currentUtc.Add(TimeSpan.FromDays(365)).ToString("ddd, dd MMM yyyy HH:mm:ss 'GMT'")))); } return(null); // Create the response building a JSON object that mimics exactly the one issued by the default /Token endpoint //JObject token = new JObject( // new JProperty("userName", user.UserName), // new JProperty("userId", user.Id), // new JProperty("access_token", accessToken), // new JProperty("token_type", "bearer"), // new JProperty("expires_in", TimeSpan.FromDays(365).TotalSeconds.ToString()), // new JProperty("issued", currentUtc.ToString("ddd, dd MMM yyyy HH':'mm':'ss 'GMT'")), // new JProperty("expires", currentUtc.Add(TimeSpan.FromDays(365)).ToString("ddd, dd MMM yyyy HH:mm:ss 'GMT'")) //); }
public List <Ship> getShips() { CoffeeServicesEntities db = new CoffeeServicesEntities(); return(db.Ships.ToList()); }