public async Task CreateAsync(AuthenticationTokenCreateContext context) { var clientid = context.Ticket.Properties.Dictionary["as:client_id"]; if (string.IsNullOrEmpty(clientid)) { return; } var refreshTokenId = Guid.NewGuid().ToString("n"); using (var db = new OAuthEntities()) { var refreshTokenLifeTime = context.OwinContext.Get <TimeSpan>(ProviderKeys.TokenTimeSpan); var token = new RefreshToken { Id = refreshTokenId.ToHash(), ClientId = int.Parse(clientid), Subject = context.Ticket.Identity.Name, IssuedUtc = DateTime.UtcNow, ExpiresUtc = DateTime.UtcNow.AddMinutes(refreshTokenLifeTime.TotalMinutes) }; context.Ticket.Properties.IssuedUtc = token.IssuedUtc; context.Ticket.Properties.ExpiresUtc = token.ExpiresUtc; token.ProtectedTicket = context.SerializeTicket(); db.RefreshToken.Add(token); await db.SaveChangesAsync(); context.SetToken(refreshTokenId); } }
private void TestData() { using (var db = new OAuthEntities()) { db.Client.Add(new Client { Name = "test", Secret = "test".ToHash(), TokenLifeTime = 15 }); db.User.Add(new User { UserName = "******", Password = "******".ToHash() }); db.SaveChanges(); } }
public async Task ReceiveAsync(AuthenticationTokenReceiveContext context) { var allowedOrigin = context.OwinContext.Get <string[]>(ProviderKeys.AllowedOrigins); context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", allowedOrigin); string hashedTokenId = context.Token.ToHash(); using (var db = new OAuthEntities()) { var refreshToken = await db.RefreshToken.FirstOrDefaultAsync(x => x.Id == hashedTokenId); if (refreshToken != null) { //Get protectedTicket from refreshToken class context.DeserializeTicket(refreshToken.ProtectedTicket); db.RefreshToken.Remove(refreshToken); } } }
public ActionResult LogOn(string userName, bool? rememberMe, string returnUrl) { var db = new OAuthEntities(); var user = db.sys_user.FirstOrDefault(u => u.Username == userName); if (user == null) return View(); this.FormsAuth.SignIn(userName, rememberMe ?? false); if (!String.IsNullOrEmpty(returnUrl)) { return Redirect(returnUrl); } else { return RedirectToAction("Index", "Home"); } }