PDA

View Full Version : تکمیل کد login



yekta64
شنبه 11 مهر 1388, 20:20 عصر
سلام دوستان
من در حال طراحی یک وب سایت با asp.net(vb.net) هستم و برای بخش login کاربران یه کد بسیار ساده نوشتم که در واقعا فقط میتونه یه کاربر رو در بخش webconfig بهش معرفی کردم به page بعد منتقل کنه ازتون خواهش میکنم یه نگاه به این کد بندازین و من رو در تکمیل این کد طوری که نکات امنیتی رعایت بشه کمک کنید من دوست دارم کد رو بفهمم و در برنامه استفاده کنم یه کد login از نت گرفتم منتها متوجه نمیشم چکار کرده خواهشا اگه کسی یه کد داره اونو در اختیار من قرار بده اما خواهش می کنم یه توضیح هم در موردش بدید اخه باید بفهمم چکار میکنه یک دنیا ممنون و متشکر
کدی که در web gonfig نوشتم:


<authentication mode="Forms">
<forms loginUrl="login.aspx" name=".myform" path="/">
<credentials passwordFormat="SHA1">
<user name="admin" password="282AA216083C57117206ABC3B956183AB2C8F68D"/>

</credentials>
</forms>
</authentication>



و کدی که در رویداد دکمه ی login نوشتم به صورت زیر هست:


If FormsAuthentication.Authenticate(TextBox1.Text, TextBox2.Text) Then
FormsAuthentication.SetAuthCookie(TextBox1.Text, True)
FormsAuthentication.RedirectFromLoginPage(TextBox1 .Text, True)
else
Label1.Text = "نام کاربری یا رمز عبور خود را اشتباه وارد کرده اید دوباره تلاش کنید";
End If


خواهش می کنم توی نوشتن این کد من رو کمک کنید
ممنوم من منتظرم دوستان

hamid1988
شنبه 11 مهر 1388, 21:06 عصر
به تاپیک زیر برو....
http://www.barnamenevis.org/forum/showthread.php?t=176748&page=1

khz-web1
یک شنبه 12 مهر 1388, 17:56 عصر
دوست عزیز چرا memberlist نمی سازی داخل SQL server ... اگه پایگاه داده کا می کنی بگو تا کد لوگین واست بزارم ...
موفق باشید

yekta64
دوشنبه 13 مهر 1388, 08:31 صبح
دوست عزیز چرا memberlist نمی سازی داخل SQL server ... اگه پایگاه داده کا می کنی بگو تا کد لوگین واست بزارم ...
موفق باشید
سلام
ممنون میشم دوست عزیز این لطف رو در حقم کنی البته اگه یه توضیح هم در مورد کدتون به من بدید مممنون میشم

mehdimdp
دوشنبه 13 مهر 1388, 10:12 صبح
سلام
من خودم از روش زير استفاده مي كردم.
تويه جدول در در ديتابيس يوزرنيم ها و پسوردها(به صورت رمزگذاري شده) رو در اون ذخيره مي كنم.
بعداز زدن كليد login توسط كاربر چك مي كنم كه اون درست هست يا نه
اگه درست بود
authentication رو true مي كنم .
حالا قضيه ي web.config چيه؟
قضيه از اين قراره كه كاربر هر وقت بخواد وارد يك صفحه اي بشه اول اين فايل چك ميكنه كه اون كاربر اخذ مجوز كرده يا نه
والسلام

yekta64
دوشنبه 13 مهر 1388, 11:03 صبح
سلام
من خودم از روش زير استفاده مي كردم.
تويه جدول در در ديتابيس يوزرنيم ها و پسوردها(به صورت رمزگذاري شده) رو در اون ذخيره مي كنم.
بعداز زدن كليد login توسط كاربر چك مي كنم كه اون درست هست يا نه
اگه درست بود
authentication رو true مي كنم .
حالا قضيه ي web.config چيه؟
قضيه از اين قراره كه كاربر هر وقت بخواد وارد يك صفحه اي بشه اول اين فايل چك ميكنه كه اون كاربر اخذ مجوز كرده يا نه
والسلام

مرسی ولی خوب باید نوع دسترسی رو هم مشخص کرد این که کاربر ها به یه page و مدیر به page دیگه بره
میشه کدتون رو در اختیار من قرار بدید

khz-web1
دوشنبه 13 مهر 1388, 15:50 عصر
ویندوز رو عوض کرده بودم واست با اکسس نوشتم (sql server نصب نبود)


Dim con As OleDbConnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=|DataDirectory|\db1.mdb")
Dim cmd As New OleDbCommand
Dim sql As String

sql = "select count(*) from teacher where usernametc=? and passwordtc=?"
cmd.Connection = con
cmd.CommandText = sql
cmd.Parameters.AddWithValue("usernametc", TextBox3.Text)
cmd.Parameters.AddWithValue("passwordtc", TextBox4.Text)
Session("username2") = TextBox3.Text

con.Open()
If cmd.ExecuteScalar = 1 Then
FormsAuthentication.SetAuthCookie(TextBox3.Text, True)
Response.Redirect("teacher\default.aspx")

ElseIf cmd.ExecuteNonQuery = 0 Then
MsgBox("نام کاربری یا رمزعبور اشتباه می باشد", MsgBoxStyle.OkOnly, "خطا")

con.Close()
End If



یک نگاهی بهش بنداز اگر متوجه نشدی بگو تا توضیح بدم واست

mehdimdp
دوشنبه 13 مهر 1388, 16:47 عصر
ویندوز رو عوض کرده بودم واست با اکسس نوشتم (sql server نصب نبود)


Dim con As OleDbConnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=|DataDirectory|\db1.mdb")
Dim cmd As New OleDbCommand
Dim sql As String

sql = "select count(*) from teacher where usernametc=? and passwordtc=?"
cmd.Connection = con
cmd.CommandText = sql
cmd.Parameters.AddWithValue("usernametc", TextBox3.Text)
cmd.Parameters.AddWithValue("passwordtc", TextBox4.Text)
Session("username2") = TextBox3.Text

con.Open()
If cmd.ExecuteScalar = 1 Then
FormsAuthentication.SetAuthCookie(TextBox3.Text, True)
Response.Redirect("teacher\default.aspx")

ElseIf cmd.ExecuteNonQuery = 0 Then
MsgBox("نام کاربری یا رمزعبور اشتباه می باشد", MsgBoxStyle.OkOnly, "خطا")

con.Close()
End If




منم دقيقا از همين روش استفاده مي كنم.

yekta64
سه شنبه 14 مهر 1388, 08:14 صبح
If cmd.ExecuteScalar = 1 Then
FormsAuthentication.SetAuthCookie(TextBox3.Text, True)
Response.Redirect("teacher\default.aspx")

ElseIf cmd.ExecuteNonQuery = 0 Then
MsgBox("نام کاربری یا رمزعبور اشتباه می باشد", MsgBoxStyle.OkOnly, "خطا")

con.Close()
EndIf


مرسی از لطف شما یه لطف کنید ببیند برداشت من از کد شما درسته یا نه:
توی این کد شما بررسی می کنید که اگه رکوردی با یوزر و پسورد وارد شده وجود دارد به page بعد منتقل شده و در غیر این صورت پیغام خطا می دهد
منتها من این خط کد رو نمی دونم برای چی استفاده کردید؟


FormsAuthentication.SetAuthCookie(TextBox3.Text, True)

و اینکه در مورد دسترسی ها هم میشه توضیح بدید اینکه مدیر به یک page و کاربران به یک page دیگه دسترسی داشته باشند؟

khz-web1
سه شنبه 14 مهر 1388, 10:21 صبح
FormsAuthentication.SetAuthCookie(TextBox3.Text, True)

هویت کاربر رو تایید می کنه و برای ست کردن کوکی روی سیستم کاربر هستش(واسه مراجعات بعدی)

واسه دسترسی هم اگر سرچ کنید هزاران مطلب خواهید یافت ....

yekta64
شنبه 18 مهر 1388, 09:13 صبح
کسی از دوستان یه کد login اماده و خوب نداره به من بده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟

Saber_Fatholahi
شنبه 18 مهر 1388, 16:17 عصر
دوست من سلام
ببین این کامپوننت من به کارت میاد
موفق باشی

khz-web1
شنبه 18 مهر 1388, 21:35 عصر
اون کدی که من بهت دادم مشکلش چی بود؟

yekta64
یک شنبه 19 مهر 1388, 08:09 صبح
اون کدی که من بهت دادم مشکلش چی بود؟
کدی که شما دادید هیچ مشکلی نداشت من هم از شما تشکر کردم
منتها فکر نمی کنم از نظر ایمنی در سطح بالای قرار داشته باشه راستش من نگران امنیت سایت هستم

mehdimdp
یک شنبه 19 مهر 1388, 20:10 عصر
کدی که شما دادید هیچ مشکلی نداشت من هم از شما تشکر کردم
منتها فکر نمی کنم از نظر ایمنی در سطح بالای قرار داشته باشه راستش من نگران امنیت سایت هستم

اتفاقا این روش یکی از روشهای مطمئن و آسونیه که شما میتونید ازش استفاده کنید.
بعضیا هم برای محکم کاری از session استفاده می کنند. که این روش یه کم کار شما رو سخت میکنه به خاطر اینکه باید در اول هرصفحه بیاین چک کنید و مطمئن بشید که کاربر وارد شده به سایت, دارای مجوز هست یا خیر.