my_blithe
یک شنبه 02 دی 1386, 13:11 عصر
با سلام
با توجه به اینکه اکثر افراد تازه کار با سیستم تشخیص هویتی که توسط ویزارد VWD ساخته میشه وقتی که روی سرور قرار می گیره با مشکل بر می خورن این آموزش رو گذاشتم. که توسط اکسس سیستمی شبیه به همونی که ویزارد میسازه تحویل میده.
خوب برای شروع ابتدا باید یک جدول توی دیتابیس اکسس بسازید که شامل دو تا ستون یکی برای username و یکی برای password نام ستون اول رو uid و نام ستون دوم که پسورد
هست رو pwd میگذاریم و uid رو نیز primary key در نظر میگیریم .
خوب حالا این جدول رو به نام tbl_members ذخیره می کنیم .
حالا میریم سراغ ویژوال استودیو دات نت
و یک فرم به صفحه اضافه کنید به نام default
یک فرم دیگه هم به نام login
و حالا وارد فایل وب کانفیگ ( web.config ) شوید ; دوستانی که از نسخه 2005 استفاده می کنند باید این فایل رو به پروژه اضافه کنند ( وارد منوی فایل و سپس از add new item شده و یک فایل webconfig اضافه کنید )
خوب تنظیمات داخل وب کانفیگ به صورت زیر است ( کافیه محتویات داخل فایلتون رو کامل پاک کنید و کد های بنده رو جایگزینش کنید )
<?xml version="1.0"?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="MyAppCookie" loginUrl="login.aspx" protection="All" timeout="30" defaultUrl="default.aspx">
<credentials passwordFormat="Clear">
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20"/>
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
<compilation debug="true">
<assemblies>
<add assembly="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=C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\WebSites\WebSite1\App_Data\member.mdb") 'شی اتصال رو به همراه رشته اتصال تعریف میکنیم دقت کنید که دیتابیس اکسس داخل درایو دی قرار داره
Dim cmd As New OleDbCommand("select count(*) from tbl_members where uid=? and pwd=?", con) ' شی فرمان به همراه رشته تقاضا که یک دستور سلکت ساده هست رو تعیین کردم
cmd.Parameters.Add("uid", OleDbType.VarChar) 'پارامتر مربوط با نام کاربری رو پاس کردم
cmd.Parameters.Add("pwd", OleDbType.VarChar) 'پارامتر مبوط با رمز عبور رو پای کردم
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 وارد میشه .
به همین راحتی.
منتظر ادامه مطلب هم باشد(سوالات متداول).
از بچه های شرکت فراداده هم به خاطر کمکی که به من کردن تشکر می کنم.
با توجه به اینکه اکثر افراد تازه کار با سیستم تشخیص هویتی که توسط ویزارد VWD ساخته میشه وقتی که روی سرور قرار می گیره با مشکل بر می خورن این آموزش رو گذاشتم. که توسط اکسس سیستمی شبیه به همونی که ویزارد میسازه تحویل میده.
خوب برای شروع ابتدا باید یک جدول توی دیتابیس اکسس بسازید که شامل دو تا ستون یکی برای username و یکی برای password نام ستون اول رو uid و نام ستون دوم که پسورد
هست رو pwd میگذاریم و uid رو نیز primary key در نظر میگیریم .
خوب حالا این جدول رو به نام tbl_members ذخیره می کنیم .
حالا میریم سراغ ویژوال استودیو دات نت
و یک فرم به صفحه اضافه کنید به نام default
یک فرم دیگه هم به نام login
و حالا وارد فایل وب کانفیگ ( web.config ) شوید ; دوستانی که از نسخه 2005 استفاده می کنند باید این فایل رو به پروژه اضافه کنند ( وارد منوی فایل و سپس از add new item شده و یک فایل webconfig اضافه کنید )
خوب تنظیمات داخل وب کانفیگ به صورت زیر است ( کافیه محتویات داخل فایلتون رو کامل پاک کنید و کد های بنده رو جایگزینش کنید )
<?xml version="1.0"?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="MyAppCookie" loginUrl="login.aspx" protection="All" timeout="30" defaultUrl="default.aspx">
<credentials passwordFormat="Clear">
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20"/>
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
<compilation debug="true">
<assemblies>
<add assembly="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=C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\WebSites\WebSite1\App_Data\member.mdb") 'شی اتصال رو به همراه رشته اتصال تعریف میکنیم دقت کنید که دیتابیس اکسس داخل درایو دی قرار داره
Dim cmd As New OleDbCommand("select count(*) from tbl_members where uid=? and pwd=?", con) ' شی فرمان به همراه رشته تقاضا که یک دستور سلکت ساده هست رو تعیین کردم
cmd.Parameters.Add("uid", OleDbType.VarChar) 'پارامتر مربوط با نام کاربری رو پاس کردم
cmd.Parameters.Add("pwd", OleDbType.VarChar) 'پارامتر مبوط با رمز عبور رو پای کردم
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 وارد میشه .
به همین راحتی.
منتظر ادامه مطلب هم باشد(سوالات متداول).
از بچه های شرکت فراداده هم به خاطر کمکی که به من کردن تشکر می کنم.