Mysql 쿼리를 사용하여 인증을 시도했지만 수동으로 예외를 추가하지 않으면 서버의 제한으로 인해 외부 연결이 허용되지 않지만 많은 경우 사용자.mysql 쿼리를 사용하지 않고 mysql 데이터베이스에서 얻은 순위로 사용자 인증
이public partial class Login : Form
{
MySqlConnection connect = new MySqlConnection("Server=SERVER;Database=DB;Uid=USER;Pwd=PWD");
public Login()
{
InitializeComponent();
}
public string LabelText
{
get
{
return this.status.Text;
}
set
{
this.status.Text = value;
}
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
ProcessStartInfo sInfo = new ProcessStartInfo("http://beatpadpc.com/member.php?action=register");
Process.Start(sInfo);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
public static string MD5Hash(string text)
{
MD5 md5 = new MD5CryptoServiceProvider();
//compute hash from the bytes of text
md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));
//get hash result after compute it
byte[] result = md5.Hash;
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < result.Length; i++)
{
//change it into 2 hexadecimal digits
//for each byte
strBuilder.Append(result[i].ToString("x2"));
}
return strBuilder.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
connect.Open();
MySqlCommand cmd = new MySqlCommand("SELECT * FROM mybb_users WHERE username = " + textBox1.Text + " AND (password = " + MD5Hash(textBox2.Text) + " AND usergroup = \"3\" OR usergroup = \"4\" OR usergroup = \"6\" OR usergroup = \"8\")");
MySqlDataReader read = cmd.ExecuteReader();
if (read.Read())
{
status.Text = "Connected";
MessageBox.Show("Success!");
}
else
{
status.Text = "Not Connected";
MessageBox.Show("Error!");
}
}
}
그래서이 : 여기
는 인증라는 라벨을 확인해야합니다 (사용자 이름 및 암호가 존재)에 성공했을 때 내가 "상태"텍스트가 연결 연결 여부를하거나 말, 처음 사용하는 것입니다 사용자를 인증하는 방법과 자격 증명이 정확하고 사용자가 사용자 그룹 3,4,6 또는 8에있는 경우 status.Text "Connected"또는 "Not Connected"를 만들지 만 카운트 서버의 제한 사항을 외부 MySQL 연결로 가져 가면?미리 감사드립니다.
, 오히려 서버 : 서버가 자신의 연결하고 전용 서버가 MySQL을 자체에 연결 그래서, 이것 좀 봐. 예를 들어, 로그인 세부 사항을 서버로 전송하면 서버는 로그인이 올바른지 여부를 리턴합니다. 이렇게하면 사람들이 프로그램을 리버스 엔지니어링하고 MySQL 데이터베이스 자격증 명에 액세스 할 수있을뿐만 아니라 모든 연결을 localhost에 보관할 수 없게됩니다. – Qwerty01
질문은 다소 모호합니다. 어떤 시점에서 언급하는 그룹 3,4,6,8은 무엇입니까? MySQL 데이터베이스에 연결할 수도 있고 그렇지 않을 수도 있습니다. 어떤 종류의 제한 사항을 언급하고 있습니까? –