두 번째 히트마다 "사용자에 대한 액세스가 거부되었습니다."

asp.net-core asp.net-core-1.0 dapper mysql

문제

나는 닷넷 코어 1.0에서 mysql로 ​​dapper를 사용하려고한다. 이 MySQL 커넥터를 사용하고 있습니다 : https://github.com/bgrainger/MySqlConnector

나는 커넥터가 알파에 있다는 것을 알고 있지만, 누군가가 비슷한 문제를 가지고 있는지 궁금해했다.

이것은 내 간단한 모델입니다.

        public List<GeneralModel> GetAllLists()
        {
            try
            {
                using (DbConnection connection = new MySqlConnection("Server=localhost;Database=lists;Uid=Unnamed;Pwd=lol;"))
                {
                    return connection.Query<GeneralModel>("SELECT * FROM lists.general").ToList();
                }
            }
            catch (Exception)
            {
                throw;
            }
        }

그리고 이것은 컨트롤러입니다.

    public IActionResult Index()
    {
        GeneralModel GenRepo = new GeneralModel();
        return View(GenRepo.GetAllLists());
    }

처음으로 색인 페이지로 이동하면 작동합니다. 새로 고침하면 '사용자 액세스가 거부되었습니다.'라는 메시지가 표시됩니다. 나는 그 오류의 원인이 무엇인지 전혀 모른다. 나는 문제가 내 코드에 있다고 생각하지 않는다.

편집하다:

이 문제는 새로 고침 후에도 오류를 반환하기 때문에 커넥터에 문제가 있다고 생각됩니다.

            List<GeneralModel> lists = new List<GeneralModel>();
            using (DbConnection connection = new MySqlConnection("Server=localhost;Database=lists;Uid=Unnamed;Pwd=lol;"))
            {
                using (DbCommand myCommand = connection.CreateCommand())
                {
                    myCommand.CommandText = "SELECT * FROM lists.general";

                    connection.Open();
                    using (DbDataReader myReader = myCommand.ExecuteReader())
                    {
                        while (myReader.Read())
                        {
                            GeneralModel tmpGen = new GeneralModel();
                            tmpGen.name = myReader["name"].ToString();
                            tmpGen.description = myReader["description"].ToString();
                            tmpGen.language = myReader["language "].ToString();

                            lists.Add(tmpGen);
                        }
                    }
                    connection.Close();
                }
            }
            return lists;

수락 된 답변

이 버그에 의해 발생 된 MySqlConnector 올바르게에 대한 빠른 경로 처리하지 COM_CHANGE_USER 패킷을 .

MySQL 서버 (버전 5.6 및 5.7)는 사용자 자격 증명을 즉시 수락하지는 않지만 항상 인증 방법 스위치 요청 패킷을 반환합니다. 사용중인 MariaDB는 빠른 경로를 구현하고 즉시 OK 패킷을 반환합니다.

커넥터는이 응답을 처리하도록 업데이트되었으며 가짜 "액세스 거부"예외를 throw하지 않아야합니다. 수정0.1.0-alpha09 입니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow