public async Task CreateAsync(AuthenticationTokenCreateContext context) { string clientid = context.Ticket.Properties.Dictionary["as:client_id"]; if (!string.IsNullOrEmpty(clientid)) { string refreshTokenId = Guid.NewGuid().ToString("n"); UnityContainer unityContainer = UnityConfig.GetConfiguredContainer() as UnityContainer; IRefreshTokenBll refreshTokenBll = UnityContainerExtensions.Resolve<IRefreshTokenBll>((IUnityContainer)unityContainer); string refreshTokenLifeTime = context.OwinContext.Get<string>("as:clientRefreshTokenLifeTime"); RefreshToken token = new RefreshToken() { Id = ApplicationOAuthProvider.GetSecretHash(refreshTokenId), ClientId = clientid, Subject = context.Ticket.Identity.Name, IssuedUtc = DateTime.UtcNow, ExpiresUtc = DateTime.UtcNow.AddMinutes(Convert.ToDouble(refreshTokenLifeTime)) }; context.Ticket.Properties.IssuedUtc = new DateTimeOffset?((DateTimeOffset)token.IssuedUtc); context.Ticket.Properties.ExpiresUtc = new DateTimeOffset?((DateTimeOffset)token.ExpiresUtc); token.ProtectedTicket = context.SerializeTicket(); int result = await refreshTokenBll.InsertRefreshToken(token); if (result > 0) { context.SetToken(refreshTokenId); if (!string.IsNullOrEmpty(this.CurrentToken)) await this.LogHistory(LoginType.RefreshToken, LoginStatus.Success, clientid, token.Subject, this.CurrentToken, (string)null, (string)null); } else if (!string.IsNullOrEmpty(this.CurrentToken)) await this.LogHistory(LoginType.RefreshToken, LoginStatus.ErrorAddRefreshToken, clientid, token.Subject, this.CurrentToken, (string)null, (string)null); } }
public async Task<bool> AddRefreshToken(RefreshToken token) { RefreshToken existingToken = Queryable.SingleOrDefault<RefreshToken>(Queryable.Where<RefreshToken>((IQueryable<RefreshToken>)this._ctx.RefreshTokens, (Expression<Func<RefreshToken, bool>>)(r => r.Subject == token.Subject && r.ClientId == token.ClientId))); if (existingToken != null) { int num = await this.RemoveRefreshToken(existingToken) ? 1 : 0; } this._ctx.RefreshTokens.Add(token); return await this._ctx.SaveChangesAsync() > 0; }
public static async Task<long> InsertRefreshToken(RefreshToken token) { const string commandText = @" INSERT INTO RefreshTokens(Id, Subject, ClientId, IssuedUtc, ExpiresUtc, ProtectedTicket) VALUES (@Id, @Subject, @ClientId, @IssuedUtc, @ExpiresUtc, @ProtectedTicket)"; var parameters = new DynamicParameters(); parameters.Add("@Id", token.Id); parameters.Add("@Subject", token.Subject); parameters.Add("@ClientId", token.ClientId); parameters.Add("@IssuedUtc", token.IssuedUtc); parameters.Add("@ExpiresUtc", token.ExpiresUtc); parameters.Add("@ProtectedTicket", token.ProtectedTicket); long results; using (var conn = await DataAccessBase.GetOpenAsync(DataAccessBase.QuangAuthConn)) { var data = await conn.QueryAsync<long>(commandText, parameters); results = data.FirstOrDefault(); } return results; }
public static async Task<long> AddRefreshToken(RefreshToken token) { RefreshToken refreshToken = await FindRefreshToken(token.ClientId, token.Subject); if (refreshToken != null) await RemoveRefreshToken(refreshToken.Id); return await InsertRefreshToken(token); }
public Task<int> InsertRefreshToken(RefreshToken token) { return Task.FromResult(_refreshTokenTable.InsertRefreshToken(token)); }
public Task<int> AddRefreshToken(RefreshToken token) { return Task.FromResult(_refreshTokenTable.AddRefreshToken(token)); }
public async Task<bool> RemoveRefreshToken(RefreshToken refreshToken) { this._ctx.RefreshTokens.Remove(refreshToken); return await this._ctx.SaveChangesAsync() > 0; }
public static async Task<long> InsertRefreshToken(RefreshToken token) { return await (RefreshTokenDal.InsertRefreshToken(token)); }
public static async Task<long> AddRefreshToken(RefreshToken token) { return await (RefreshTokenDal.AddRefreshToken(token)); }
public int AddRefreshToken(RefreshToken token) { RefreshToken refreshToken = FindRefreshToken(token.ClientId, token.Subject); if (refreshToken != null) RemoveRefreshToken(refreshToken.Id); return InsertRefreshToken(token); }
public int InsertRefreshToken(RefreshToken token) { return _database.Execute("INSERT INTO `Security`.`RefreshTokens`(\n `Id`,\n `Subject`,\n `ClientId`,\n `IssuedUtc`,\n `ExpiresUtc`,\n `ProtectedTicket`\n ) VALUES (\n @Id,\n @Subject,\n @ClientId,\n @IssuedUtc,\n @ExpiresUtc,\n @ProtectedTicket)", new Dictionary<string, object>() { { "@Id", token.Id }, { "@Subject", token.Subject }, { "@ClientId", token.ClientId }, { "@IssuedUtc", token.IssuedUtc }, { "@ExpiresUtc", token.ExpiresUtc }, { "@ProtectedTicket", token.ProtectedTicket } }); }