דיון לגבי הצגת מידע מDB בדף aspx - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

דיון לגבי הצגת מידע מDB בדף aspx


bdoron

Recommended Posts

לאחרונה התחלתי לעשות פרויקט משל עצמי, רק בשביל לצבור נסיון , מאחר ואין לי איזה מדריך הייתי רוצה לדעת אם אני עושה הכל לפי המקובל,

אז אני ארשום דברים שעשיתי ואתם תעבירו ביקורת האם זאת הדרך המקובלת בתעשיה..

1. אז נתחיל עם sql server, יצרתי DB

שמכיל מספר טבלאות עם קשרים בניהם..

2. יצרתי דף login שמרכיב סיסמה ואימל... שלמעשה ברגע לחיצת לחצן הלוגין הוא בעצם ניגש לDB בודק את הסיסמה והאימל ובהתאם להרשאה שלו אני שולח אותו לדף מסויים

זה הקוד :


protected void Page_Load(object sender, EventArgs e)
{

if (Request.HttpMethod == "POST")
{
_IsValid = false;
SqlConnection _conn = new SqlConnection("Data Source=WINDOWS-PC;Initial Catalog=Db_CrmWrk;Integrated Security=True");
string _email = Request.Form["Email"];
string _pass = Request.Form["Pass"];


SqlCommand _cmd = _conn.CreateCommand();
_cmd.CommandText = @"SELECT *
FROM [dbo].[Employees] employees
INNER JOIN [Db_CrmWrk].[dbo].[Persons] person
ON employees.IDNumber=person.IDNumber
WHERE [Password]=@password and person.EmailAdress=@email";
_cmd.Parameters.Add("@password", SqlDbType.VarChar, 100);
_cmd.Parameters.Add("@email", SqlDbType.VarChar, 50);
_cmd.Parameters["@password"].Value = _pass;
_cmd.Parameters["@email"].Value = _email;
_conn.Open();


SqlDataReader _reader = _cmd.ExecuteReader();
if (_reader.HasRows)
{
while (_reader.Read())
{
_idNumber = _reader["IDNumber"].ToString();
_Permission = _reader["Permission"].ToString();
}
_IsValid = true;
}
_conn.Close();


switch (_Permission)
{
case "owner":
{


str = string.Format("OwnerPage.aspx?&idNumber={0}&Email={1}", _idNumber, _email);
if (_IsValid) Response.Redirect(str);
break;
}


case "CEO":
{
str = string.Format("Home.aspx?&idNumber={0}&Email={1}", _idNumber, _email);
if (_IsValid) Response.Redirect(str);
break;
}
case "sales":
{
str = string.Format("Sales.aspx?&idNumber={0}&Email={1}", _idNumber, _email);
if (_IsValid) Response.Redirect(str);
break;
}


}




}



האם הדרך הזאת מקובלת? כאשר המשתמש נמצא אני מעביר אותו לדף שהוא מורשה ואני שולח לאותו דף את האימל והמספר תעודת זהות, וזאת בשביל לשלוף בדף הבא נתונים מהDB

ניראה לי שהדרך בסדר אבל הייתי רוצה לדעת אם זה הדרך שמקובל, שלא אגיע למקום ויגידו לי מה זה השטויות האלה

מקובל שעושים א ב ג

:)

קישור לתוכן
שתף באתרים אחרים

  • 2 שבועות מאוחר יותר...

שלום רב,

בדר"כ לא מומלץ להעביר נתונים ישירות ל SQL בצורה הזו, אלה דרך משתנים שעברו VALIDATION.

הרעיון הוא ל"החביא" את השאילתא כדי שלא יוכלו להכניס לך קוד זדוני ולקבל מידע.

אם אתה עובד ב .NET, יש לך מערכת מובנית של עם אימות וניהול משתמשים.

קישור לתוכן
שתף באתרים אחרים

אני לא הכי אוהב להשתמש בדברים המובנים של asp.net כי הם ניראה לי לפעמים יותר מידיי מסורבלים...

שאילתות אני מעביר דרך פרמטרים כמו שהמליצו לי, ולגבי ולידציות אני עושה אותן דרך JS ניראה לי הכי טוב

לא?

קישור לתוכן
שתף באתרים אחרים

לא, כי אפשר לעקוף אותן.

ולידציה מהסוג הזה בקליאנט מיועדת יותר ל- UX מאשר ל- Security בהרבה מקרים. אתה לא יכול להסתמך עליה, המשתמש תמיד יכול לעקוף אותה.

קישור לתוכן
שתף באתרים אחרים

הבעיה שהדברים המוכנים למשל

מערכת מובנית של עם אימות וניהול משתמשים.

סבבה והכל אבל היא בנויה בצורה מסויימת, היא לא גמישה לצורה שאני רוצה להציג אותה...

- - - תגובה אוחדה: - - -

ומה זה UX?

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...