public async Task <IHttpActionResult> PostLogIn([FromBody] AuthModelID authModelID) { User user = new User(); try { user = await db.Users.FirstOrDefaultAsync(c => c.UserName == authModelID.Username); } catch { return(Unauthorized()); } if (user == null) { return(Unauthorized()); } if (user.UserPassword != HashPassword(authModelID.Password)) { return(Unauthorized()); } string source1 = DateTime.Now.ToString() + "|" + user.UserName + "|" + user.UserRole; string source2 = DateTime.Now.ToString() + "|" + user.UserName + "|" + user.UserRole; string source3 = DateTime.Now.ToString() + "|" + user.UserName + "|" + user.UserRole; string Codestr = HashPassword(source1); string Tokenstr = HashPassword(source2); string Refreshstr = HashPassword(source3); Code TempCode = new Code(); Token TempToken = new Token(); TempCode.AccessCode = Codestr; TempCode.Timeofrelease = DateTime.Now.AddMinutes(10); TempCode.OwnerId = authModelID.ClientId; db.Codes.Add(TempCode); await db.SaveChangesAsync(); Code ttt = await db.Codes.FirstOrDefaultAsync(c => c.AccessCode == TempCode.AccessCode); TempToken.AccessToken = Tokenstr; TempToken.RefreshToken = Refreshstr; TempToken.TimeOfReleaseAccessToken = DateTime.Now.AddMilliseconds(1); TempToken.TimeOfReleaseRefreshToken = DateTime.Now.AddMinutes(100); TempToken.UserId = user.Id; TempToken.AccessCodeId = ttt.Id; db.Tokens.Add(TempToken); await db.SaveChangesAsync(); return(Ok(ttt.AccessCode)); }
public async Task<ActionResult> Acept(AuthenticationModRedirect authModel) { AuthModelID modelID = new AuthModelID(); modelID.Username = authModel.Username; modelID.Password = authModel.Password; modelID.ClientId = authModel.ClientId; string code = ""; try { using (HttpClient test = new HttpClient()) { test.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage res = await test.PostAsJsonAsync(new Uri("http://localhost:1524/oauth/login"), modelID); if (res.IsSuccessStatusCode) { var EmpResponse = res.Content.ReadAsStringAsync().Result; code = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(EmpResponse); } else { return View("Error"); } } } catch { return View("Error"); } if (authModel.Redirect != null) { return Redirect(String.Format(authModel.Redirect + "?code={0}&state=", HttpUtility.UrlEncode(code))); } return RedirectToAction("Index", "Home"); }