ASP.NET 4.0 및 SQL Server 2008을 사용하여 웹 사이트를 개발 중입니다. 로그인 페이지에서 사용자 공급 업체 ID를 확인해야하며 공급 업체 ID에 따라 페이지가 리디렉션됩니다 좋은 일을하는 모든 일들이 있지만 관리자가 자신의 VendorID와 Password를 입력하면 관리자 페이지가 리디렉션되도록 확인하는 방법을 모르겠습니다. 해당 공급 업체 ID와 비밀번호도 다른 사용자와 동일한 테이블 "User_Info"에 저장됩니다. . 아래 코드를 참고하십시오. 코드에서 직접 vendorID와 암호를 부여했기 때문에 항상 관리자 페이지로 리디렉션됩니다.이 문제를 극복하기위한 제안을하십시오. 이 시도 .. 당신이 아키텍처를 구축사용자가 "Admin"인지 확인하는 방법
protected void BtnHomeUserSubmit_Click(object sender, EventArgs e)
{
SqlConnection SqlCon = new SqlConnection(GetConnectionString());
try
{
var da1 = new SqlDataAdapter("select * from User_Info where Vendor_ID='" + txtHomeUsername.Text.Trim() + "' AND User_Password='" + txtHomePassword.Text.Trim() + "'", SqlCon);
var dt1 = new DataTable();
da1.Fill(dt1);
if (dt1.Rows.Count == 0)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "alert('Enter valid Vendor ID and Password');", true);
}
else
{
var da = new SqlDataAdapter("select * from User_Info where Vendor_ID='Admin' AND User_Password='123456'", SqlCon);
var dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
Response.Redirect("~/AdminCompanyInfo.aspx");
}
var da2 = new SqlDataAdapter("select * from Company_Info where Vendor_ID='" + txtHomeUsername.Text.Trim() + "' AND Approval_Status='NO' OR Approval_Status='PEN'", SqlCon);
var dt2 = new DataTable();
da2.Fill(dt2);
if (dt2.Rows.Count > 0)
{
string url = "../ApprovalStatus2.aspx?Parameter=" + Server.UrlEncode(txtHomeUsername.Text);
ClientScript.RegisterStartupScript(this.GetType(), "callfunction", "alert('Your Vendor ID is waiting for Approval');window.location.href = '" + url + "';", true);
}
var da3 = new SqlDataAdapter("select Vendor_ID from RegPage1 where Vendor_ID='" + txtHomeUsername.Text.Trim() + "'", SqlCon);
var dt3 = new DataTable();
da3.Fill(dt3);
if (dt3.Rows.Count > 0)
{
string url = "../UserLogin.aspx";
ClientScript.RegisterStartupScript(this.GetType(), "callfunction", "alert('Your Vendor ID already completed the registration');window.location.href = '" + url + "';", true);
}
else
{
Response.Redirect("~/RegPage1.aspx?Parameter=" + Server.UrlEncode(txtHomeUsername.Text));
}
}
}
finally
{
SqlCon.Close();
}
}
어떤 점에서 'SQL 인젝션'에 대한 읽기 ... reply.Where에 대한 –