/// <summary> /// 認証処理を行います。 /// </summary> /// <param name="info">ユーザー認証情報</param> /// <returns>認証されたかどうか</returns> public async Task <bool> AuthenticateAsync(UserAuthInfo info) { using (var connection = DbConnector.CreateDbConnection()) { connection.Open(); var sql = PrimitiveSql.CreateSelectSql <M_USER>(); var parameter = new { ID = info.Id }; var users = await connection.QueryAsync <M_USER>(sql, parameter).ConfigureAwait(false); var user = users.FirstOrDefault(); return(user != null && Convert.ToBoolean(user.ACTIVE_FLG) && user.PASSWORD == info.Password); } }
/// <summary> /// 指定されたトークンが有効かどうかを確認します。 /// </summary> /// <param name="token">トークン</param> /// <returns>有効かどうか</returns> public async Task <bool> IsValidAsync(string token) { var sql = PrimitiveSql.CreateSelectSql <T_REQUEST_TOKEN>(); var parameter = new T_REQUEST_TOKEN { VALUE = token }; using (var connection = DbConnector.CreateDbConnection()) { connection.Open(); var record = (await connection.QueryAsync <T_REQUEST_TOKEN>(sql, parameter) .ConfigureAwait(false)) .FirstOrDefault(); return(record == null ? false : DateTime.Now <= record.EXPIRATION_TIME); } }
/// <summary> /// 指定されたトークンを利用しているユーザーのIDを取得します。 /// </summary> /// <param name="token">トークン</param> /// <returns>ユーザーID</returns> public async Task <int?> GetUserIdAsync(string token) { var sql = PrimitiveSql.CreateSelectSql <T_ACCESS_TOKEN>(); var parameter = new T_ACCESS_TOKEN { VALUE = token }; using (var connection = DbConnector.CreateDbConnection()) { connection.Open(); var record = (await connection.QueryAsync <T_ACCESS_TOKEN>(sql, parameter) .ConfigureAwait(false)) .FirstOrDefault(); if (record == null) { return(null); } if (record.EXPIRATION_TIME < DateTime.Now) { return(null); } return(record.USR_ID); } }