نمایش نتایج 1 تا 19 از 19

نام تاپیک: آموزش : تشخیص هویت بوسیله دیتابیس اکسس

  1. #1
    کاربر دائمی آواتار my_blithe
    تاریخ عضویت
    آذر 1386
    محل زندگی
    ای کاش پیش خدا
    پست
    221

    Post آموزش : تشخیص هویت بوسیله دیتابیس اکسس

    با سلام

    با توجه به اینکه اکثر افراد تازه کار با سیستم تشخیص هویتی که توسط ویزارد 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 وارد میشه .

    به همین راحتی.
    منتظر ادامه مطلب هم باشد(سوالات متداول).
    از بچه های شرکت فراداده هم به خاطر کمکی که به من کردن تشکر می کنم.
    آخرین ویرایش به وسیله my_blithe : دوشنبه 03 دی 1386 در 22:37 عصر دلیل: اصلاح کدها

  2. #2
    کاربر دائمی آواتار khz-web1
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    اهواز
    پست
    614
    آقا واقعا ازت ممنونم اگه اینو به صورت PDF میزاشتی بهتر بود

  3. #3
    کاربر دائمی آواتار merlin_vista
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    نصف جهان
    پست
    1,014
    برای دکمه : SignOut :
            FormsAuthentication.SignOut();
    FormsAuthentication.RedirectToLoginPage();

    ++
    ]چند سوال در باب این موضوع :
    1 - چگونه نام کاربر وارد شده را در همه صفحات بگیریم !! حال اگر این نام از یک فیلد جدا در جدول باشد چی ؟

    2 - چگونه بعضی از صفحات را از تشخیص هویت منع کنیم (یعنی آزاد باشه )

    3 - چگونه اطلاعات دیگر فیلد های جدول members را در هرجایی که لازم است فرخانی کنیم !! مثل (تحصیلات و زمان آخرین ورود و . . . )


    4- چگونه این عمل را برای پوشه خاط انجام بدیم یعنی این صفحات محافظت شده را در یک پوشه قرار بدیم و هرچه در آن پوشه هست اعتبار سنجی کنیم !!

    بازم ممنون

  4. #4
    کاربر دائمی آواتار khz-web1
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    اهواز
    پست
    614
    آقا من هم به مشکل بر خوردم

    شما گفتید که فایل web.config رو کامل پاک کنید و جاش کد های مربوط به کانفیگ شمارو بزرام ، ولی حالا که پاک می کنم و کدهای شمارو میزارم 29 ارور به من میده !!!!!!!

    من نیاز شدید دارم به این برنامه اگه میشه سریع تر جواب بدید

  5. #5
    کاربر دائمی آواتار merlin_vista
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    نصف جهان
    پست
    1,014
    شما میتوانید به وب.کانفیگ خودتون فقط این قسمت را اضافه کنید :
       <authenticationmode="Forms">
    <formsname="MyAppCookie"loginUrl="login.aspx"protection="All"timeout="30"defaultUrl="default.aspx" >
    <credentialspasswordFormat="Clear">
    </credentials>
    </forms>
    </authentication>

  6. #6
    کاربر تازه وارد آواتار hamid58
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    79

  7. #7
    کاربر دائمی آواتار khz-web1
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    اهواز
    پست
    614
    آقا من این فایل رو در زیر ضمیه کردم ، اگه واسم درستش کنید ممنون میشم

    http://downloadahwaz.persiangig.com/asp/website15.zip

    با تشکر

  8. #8
    کاربر دائمی آواتار merlin_vista
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    نصف جهان
    پست
    1,014
    آقا من از کد زیر برای تشخیص هویت استفاده کردم و کار داد !!
    حالا میخواهم یک صفحه تشخیص هویت نداشته باشه بهم کار نداد ؟؟؟؟
      <location path="download.aspx"  ></location>
    <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>

  9. #9
    کاربر دائمی آواتار my_blithe
    تاریخ عضویت
    آذر 1386
    محل زندگی
    ای کاش پیش خدا
    پست
    221
    سلام
    من کدها رو اصلاح کردم و توی پست اول همین تایپک اعمال شده می تونید لذت ببرید

  10. #10
    کاربر دائمی آواتار merlin_vista
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    نصف جهان
    پست
    1,014
    نقل قول نوشته شده توسط merlin_vista مشاهده تاپیک
    برای دکمه : SignOut :
            FormsAuthentication.SignOut();
    FormsAuthentication.RedirectToLoginPage();
    ++
    ]چند سوال در باب این موضوع :
    1 - چگونه نام کاربر وارد شده را در همه صفحات بگیریم !! حال اگر این نام از یک فیلد جدا در جدول باشد چی ؟

    2 - چگونه بعضی از صفحات را از تشخیص هویت منع کنیم (یعنی آزاد باشه )

    3 - چگونه اطلاعات دیگر فیلد های جدول members را در هرجایی که لازم است فرخانی کنیم !! مثل (تحصیلات و زمان آخرین ورود و . . . )


    4- چگونه این عمل را برای پوشه خاط انجام بدیم یعنی این صفحات محافظت شده را در یک پوشه قرار بدیم و هرچه در آن پوشه هست اعتبار سنجی کنیم !!

    بازم ممنون
    کسی نیست جواب من را بده ؟

  11. #11
    کاربر دائمی آواتار my_blithe
    تاریخ عضویت
    آذر 1386
    محل زندگی
    ای کاش پیش خدا
    پست
    221

    سوالات متداول :

    سوالات متداول :
    • صفحه ای به نام home.aspx و صفحه ای به نام members.aspx دارم میخوام وقتی صفحه home رو فراخاونی میکنم به صفحه لوگین نره ولی وقتی صفحه members رو فراخوانی کردم بره به صفحه لوگین بعد وارد این صفحه شه چی کار باید انجام بدم ؟

    جواب : فایل وب کانفیگ رو به صورت زیر تغغیر بدید



    <?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>
    <deny users="?"/>
    </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>

    <locationpath="home.aspx">
    <system.web>
    <authorization>
    <allowusers="*"/>
    </authorization>
    </system.web>
    </location>

    <locationpath="members.aspx">
    <system.web>
    <authorization>
    <denyusers="?"/>
    </authorization>
    </system.web>
    </location>

    </configuration>







    • می خواهم بعد از تصدیق هویت نام کاربری رو در صفحه default در بیارم و یک پیام خوش آمد بدم چی کار کنم ؟


    جواب : توسط متد زیر نام کاربری فرد لوگین شده رو بدست آورید :

    User.Identity.Name.ToString

    • در صفحه ای که دارم از کجا بفهمم که کاربر لوگین کرده یا نه؟

    جواب : توسط متد زیر میتونید بفهمید که کاربر لوگین شده یا خیر

    If User.Identity.IsAuthenticated Then
    'کاربر لوگین شده
    Else
    'کاربر لوگین نشده
    End If



    • وقتی کاربر لوگین میکنه داخل سایت حالا چطور signout کنه؟
    در صفحه مثلا default یک باتن به نام btn_signout قرار بدید و کد های زیر رو بنویسید

    Protected Sub btn_signout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_signout.Click

    FormsAuthentication.SignOut()
    FormsAuthentication.RedirectToLoginPage()

    End Sub


    • کاربر هر چند وفت که داخل سیستم هست بطور خود کار signout میشه نمیدونم چرا ؟

    جواب : شما در فایل وب کانفیگ در خط زیر

    <authenticationmode="Forms">
    <formsname="MyAppCookie"loginUrl="login.aspx"protection="All"timeout="30"defaultUrl="default.aspx" >
    <credentialspasswordFormat="Clear">
    </credentials>
    </forms>
    </authentication>



    مقدار timeout="30" قرار دادید اونو بیشترش کنید . مثلا





    <authenticationmode="Forms">
    <formsname="MyAppCookie"loginUrl="login.aspx"protection="All"timeout="100"defaultUrl="default.aspx" >
    <credentialspasswordFormat="Clear">
    </credentials>
    </forms>
    </authentication>


  12. #12
    کاربر دائمی آواتار my_blithe
    تاریخ عضویت
    آذر 1386
    محل زندگی
    ای کاش پیش خدا
    پست
    221

    پروژه آماده

    سلام این هم فایل آمده شده با این روش فقط هنگام اجرا دقت کنید که مسیر دیتابیس در رویداد دکمه صفحه login درس وارد شده باشه :
            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")


    موفق باشید.
    تشکر یادتون نره
    فایل های ضمیمه فایل های ضمیمه

  13. #13

    نقل قول: آموزش : تشخیص هویت بوسیله دیتابیس اکسس

    با سلام
    دوستان این بحث بسیار با ارزش و مهم است.
    اما اگه گفته نشه که چگونه همانند کنترل های asp.net بتوانیم profile وrols مختلفی ایجاد کنیم مطلب ناقص است.
    1 - چگونه نام کاربر وارد شده را در همه صفحات بگیریم !! حال اگر این نام از یک فیلد جدا در جدول باشد چی ؟
    3 - چگونه اطلاعات دیگر فیلد های جدول members را در هرجایی که لازم است فرخانی کنیم !! مثل (تحصیلات و زمان آخرین ورود و . . . )
    4- چگونه این عمل را برای پوشه خاط انجام بدیم یعنی این صفحات محافظت شده را در یک پوشه قرار بدیم و هرچه در آن پوشه هست اعتبار سنجی کنیم !!
    چرا هی پاسخی برای این سوال ها مشخص نشد؟
    با تشکر

  14. #14
    کاربر دائمی آواتار my_blithe
    تاریخ عضویت
    آذر 1386
    محل زندگی
    ای کاش پیش خدا
    پست
    221

    نقل قول: آموزش : تشخیص هویت بوسیله دیتابیس اکسس

    سلام

    نام کاربر رو از طریق کد زیر میشه بدست آورد (مثلا بریزیم توی لیبل 1) :

    label1.text = User.Identity.Name.ToString


    برای مورد دوم و سوم باید کد نویسی کنید و خودتون مقادیر رو توی دیتابیس بریزید و هر وقت خواستید بازیابی کنید.

    این فقط یک لاگین ساده است و با یک سیستم تشخیص هویت حرفه ای خیلی فاصله داره ، اما با کمی کار کردن می تونی به سطح اونها هم برسونیش.



  15. #15
    کاربر دائمی آواتار komeil64
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    سن
    39
    پست
    618

    نقل قول: آموزش : تشخیص هویت بوسیله دیتابیس اکسس

    سلام
    از مطالب خوبتون ممنون
    من کد اصلی دکمه این کار رو به سی شارپ تبدیل کردم با کانورتور اما از کامندش ایراد می گیره
    کد تبدیل شده به سی شارپ:

    OleDbConnection con = 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");
    OleDbCommand cmd = 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) {
    FormsAuthentication.RedirectFromLoginPage(txt_uid. Text, chk_member.Checked);
    }
    else if (cmd.ExecuteScalar == 0) {
    lbl.Visible = true;
    }

    از این دو مورد هم ایراد می گیره.با یک مساوی هم همین مشکل هست

    cmd.ExecuteScalar == 1
    cmd.ExecuteScalar == 0

  16. #16
    کاربر دائمی آواتار komeil64
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    سن
    39
    پست
    618

    نقل قول: آموزش : تشخیص هویت بوسیله دیتابیس اکسس

    ممنون میشم راهنمایی کنین یا یه لاگین سی شارپ مثال بزنید
    تشکر

  17. #17
    کاربر دائمی آواتار milade
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    شیراز
    پست
    2,189

    نقل قول: آموزش : تشخیص هویت بوسیله دیتابیس اکسس

    سلام استاد .
    لطفاً تایپکهای قدیمیرو بالا نیار .
    خب سال 86 کی زنده ...
    اینو تست کن :
     OleDbConnection con = 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"); 
    OleDbCommand cmd = new OleDbCommand("select count(*) from tbl_members where uid=@ud and pwd=@pd", con);
    cmd.Parameters.Add("@ud", OleDbType.VarChar);
    cmd.Parameters.Add("@pd", OleDbType.VarChar);
    con.Open();
    if (cmd.ExecuteScalar == 1) {
    FormsAuthentication.RedirectFromLoginPage(txt_uid. Text, chk_member.Checked);
    }
    else if (cmd.ExecuteScalar == 0) {
    lbl.Visible = true;
    }

    البته من فقط کد رو اصلاح کردم ...
    شما هم بهتره Command رو به DataReder وصل کنی و ریدر رو چک کنی ( میتونی هم این کار رو نکنی !!! )

    پاینده باشید

  18. #18
    کاربر دائمی آواتار komeil64
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    سن
    39
    پست
    618

    نقل قول: آموزش : تشخیص هویت بوسیله دیتابیس اکسس

    از راهنماییتون ممنون
    بازم همون مشکل هست
    میشه یه مثال از دیتاریدر بزارید
    تشکر

  19. #19

    نقل قول: آموزش : تشخیص هویت بوسیله دیتابیس اکسس

    دوستان میشه لطف کنید کد #C این تاپیکم قرار دهید

    ممنون میشم

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •