سیستم ورود و تشخیص هویت ساده در دات نت
با سلام
میخوام یک سیستم لوگین کامل رو امروز توضیح بدم
البته توسط دیتابیس اکسس هست ولی اس کیو ال هم همیجوریه یکم باید تغغیرش بدید
خوب برای شروع ابتدا باید یک جدول توی دیتابیس اکسس بسازید که شامل دو تا ستون یکی برای username و یکی برای password نام ستون اول رو uid و نام ستون دوم که پسورد هست رو pwd میگذاریم و uid رو نیز primary key در نظر میگیریم .
خوب حالا این جدول رو به نام tbl_members ذخیره می کنیم .
حالا میریم سراغ ویژوال استودیو دات نت و یک فرم به صفحه اضافه کنید به نام default یک فرم دیگه هم به نام login و حالا وارد فایل وب کانفیگ ( web.config ) شوید ; دوستانی که از نسخه 2005 استفاده می کنند باید این فایل رو به پروژه اضافه کنند ( وارد منوی فایل و سپس از add new item شده و یک فایل webconfig اضافه کنید ) خوب تنظیمات داخل وب کانفیگ به صورت زیر است ( کافیه محتویات داخل فایلتون رو کامل پاک کنید و کد های بنده رو جایگزینش کنید )
کد:
<?xmlversion="1.0"?>
<configuration>
<system.web>
<customErrorsmode="Off"/>
<authenticationmode="Forms">
<formsname="MyAppCookie"loginUrl="login.aspx" protection="All"timeout="30"defaultUrl="default.aspx" >
<credentialspasswordFormat="Clear">
</credentials>
</forms>
</authentication>
<authorization>
<denyusers="?"/>
</authorization>
<sessionStatemode="InProc"stateConnectionString="tcpip=127.0.0.1:42424"sqlConnectionString="data source=127.0.0.1;user id=sa;password="cookieless="false"timeout="20"/>
<globalizationrequestEncoding="utf-8"responseEncoding="utf-8"/>
<compilation>
<assemblies>
<addassembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
</compilation>
</system.web>
</configuration>
خوب حالا فایل رو ذخیره کنید و بریم سراغ صفحه login.aspx که ساخته بودید بروید
در اینجا باید یک لوگین بسازید به این صورت :
یک تکس باکس برای وارد کردن username بگذارید و آی دی اونو txt_uid بگذارید
یک تکس باکس دیگه هم برای پسوورد که آی دی اونم txt_pwd گذاشتید و text mode رو برابر password تععین کنید
یک چک باکس برای بخاطر ماندن به نام chk_member
و یک لیبل برای خطا به نام lbl که Visible اون false هست
خوب حالا باید یک باتن هم برای ورود بگذارید آی دی اونو btn_submit میگذاریم :
کد های html به این صورت در میاد :
کد:
<table border="0" style="width: 100%; height: 504px">
<tr>
<td align="center" style="width: 100%">
<fieldset style="width: 296px; height: 112px" dir="rtl">
<legend dir="rtl">ورود به سایت</legend>
<table border="0">
<tr>
<td style="width: auto">
نام کاربری :</td>
<td align="right" style="width: auto">
<asp:TextBox ID="txt_uid" runat="server" Width="144px"></asp:TextBox></td>
<td style="width: auto">
</td>
</tr>
<tr>
<td style="width: auto">
رمز عبور :</td>
<td align="right" style="width: auto">
<asp:TextBox ID="txt_pwd" runat="server" TextMode="Password" Width="144px"></asp:TextBox></td>
<td style="width: auto">
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chk_member" runat="server" Text="مرابه خاطر بسپار" /></td>
<td style="width: auto">
</td>
</tr>
<tr>
<td colspan="3" style="width: auto">
<asp:Label ID="lbl" runat="server" ForeColor="Red" Text="نام کاربری یا رمز عبور نادرست می باشد"
Visible="False"></asp:Label></td>
</tr>
<tr>
<td style="width: auto">
</td>
<td align="center" style="width: auto">
<asp:Button ID="btn_submit" runat="server" CssClass="button" Text="ورود" /></td>
<td style="width: auto">
</td>
</tr>
</table>
</fieldset>
</td>
</tr>
</table>
حالا به سراغ بخش code-behind رفته و دو فضا نام زیر رو وارد نمایید
کد:
Imports System.Data
Imports System.Data.OleDb
خوب حالا بر روی باتن submit کلیک کنید دا رویداد مربوط به کلیک شدن این باتن ظاهر شود و کد های زیر رو داخلش بنویسید :
کد:
Imports System.Data
Imports System.Data.OleDb
Public Class login
Inherits System.Web.UI.Page
Protected Sub btn_submit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_submit.Click
Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\login.mdb") 'شی اتصال رو به همراه رشته اتصال تعریف میکنیم دقت کنید که دیتابیس اکسس داخل درایو دی قرار داره
Dim cmd As New OleDbCommand("select count(*) from tbl_members where uid=? and pwd=?", con) ' شی فرمان به همراه رشته تقاضا که یک دستور سلکت ساده هست رو تعیین کردم
cmd.Parameters.Add("uid", txt_uid.Text) 'پارامتر مربوط با نام کاربری رو پاس کردم
cmd.Parameters.Add ("pwd", txt_pwd.Text) 'پارامتر مبوط با رمز عبور رو پای کردم
con.Open() ' اتصال رو بر قرار می کنم
If cmd.ExecuteScalar = 1 Then ' اگر تعداد سطر های موجود در جدول که نام کاربری و رمز عبوری این چنین داشتن برابر یک بود
FormsAuthentication.RedirectFromLoginPage(txt_uid.Text, chk_member.Checked) 'کاربر شناسایی شده و تصدیق شده اونو به صفحه اصلی هدایت می کنیم
ElseIf cmd.ExecuteScalar = 0 Then 'اگر تعداد سطر های موجود در جدول که نام کاربری و رمز عبوری این چنین داشتن برابر صفر بود
lbl.Visible = True 'پیامی جهت اشتباه بودن رمز عبور ارسال می گردد
End If 'پایان شرط
End Sub
End Class
کار به همین راحتی به پایان رسید .
حال اگه شما صفحه default.aspx رو فراخوانی کنید میبینید که ابتدا وارد صفحه لوگین شده و اگر تصدیق هویت صحیح بود آنگاه به صفحه default وارد میشه .
:10: