예제 #1
0
        /// <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);
            }
        }
예제 #2
0
        /// <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);
            }
        }
예제 #3
0
        /// <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);
            }
        }