تبلیغات
آموزشASP.NET - ایجاد یک فرم Logon.aspx که محل شناسایی کاربران می باش
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 

۱- یک فرم به نام Logon.aspx را به پروژه اضافه کنید.
۲- در نمای HTML فرم Logon.aspx کد زیر را بین دو تگ <Form> اضافه کنید:

<h3>
<font face="Verdana">Logon Page</font>
</h3>
<table>
    <tr>
        <td>UserName:</td>
        <td><input id="txtUserName" type="text" runat="server"></td>
        <td><ASP:RequiredFieldValidator ControlToValidate="txtUserName"
            Display="Static" ErrorMessage="*" runat="server"
            ID="vUserName" /></td>
    </tr>
    <tr>
        <td>Password:</td>
        <td><input id="txtUserPass" type="password" runat="server"></td>
        <td><ASP:RequiredFieldValidator ControlToValidate="txtUserPass"
            Display="Static" ErrorMessage="*" runat="server"
            ID="vUserPass" />
        </td>
    </tr>
    <tr>
        <td>Persistent Cookie:</td>
        <td><ASP:CheckBox id="chkPersistCookie" runat="server" autopostback="false" /></td>
        <td></td>
    </tr>
</table>
<input type="submit" Value="Logon" runat="server" ID="cmdLogin"><p></p>
<asp:Label id="lblMsg" ForeColor="red" Font-Name="Verdana" Font-Size="10" runat="server" />


در این فرم کاربرانی که می خواهند وارد سایت شوند شناسایی می شوند. این فایل را ذخیره کنید.


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

این قسمت حاوی کدی است که در فایل code-behind فرم Logon.aspx ) یعنی( Logon.aspx.vb قرار می گیرد.

۱- فایل logon.aspx.vb را باز کنید.
۲- فضانام های مورد نیاز را در فایل code-behind وارد کنید:

Imports System.Data.SqlClient
Imports System.Web.Security

۳- یک تابع به نام ValidateUser ایجاد کنید که مشخصات کاربران را برای اعتبارسنجی در پایگاه داده جستجو می کند. برای این کار می توانید از کد زیر استفاده کنید. (Connection String موجود در این کد باید مطابق با پایگاه داده شما باشد پس در صورت لزوم باید آنرا مطابق با سیستم خودتان تغییر دهید. در اینجا نام کامپیوتر من DOTNET می باشد و SQL Server به صورت Local نصب شده است).

Function ValidateUser(uid As string, passwd As string) As Boolean
    Dim cnn As SqlConnection
    Dim cmd As SqlCommand
    Dim dr As SqlDataReader
    Dim retVal As Boolean = False
    cnn = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Workstation                     ID=DOTNET;")
    cmd = New SqlCommand("Select * from users where uname = '" & uid & "'", cnn)
    cnn.Open()
    dr = cmd.ExecuteReader()
    While (dr.Read())
        If Strcomp(dr.Item("Pwd"), passwd, 1) = 0 Then
            retVal = True
        End If
    End While
    cnn.Close()
    ValidateUser = retVal
End Function


۴- شما می توانید از یکی از روشهای زیر برای ایجاد کوکی شناسایی بر اساس فرمها استفاده کرده و در رویداد cmdLogin_ServerClick کاربر را به صفحهی مناسب هدایت کنید. یکی از دو قطعه کد زیر را برای رویداد cmdLogin_ServerClick بنویسید:

-
متد RedirectFromLoginPage را برای ایجاد خودکار کوکی شناسایی فراخوانی کنید و کاربر را به صفحه ی مناسب هدایت کنید:

Private Sub cmdLogin_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles cmdLogin.ServerClick
    If ValidateUser(txtUserName.Value,txtUserPass.value) Then
        FormsAuthentication.RedirectFromLoginPage(txtUserName.Value, _
        chkPersistCookie.Checked)
    Else
        lblMsg.Text = "Unknown User! try again."
    End If
End Sub

- برچسب شناسایی (authentication ticket) را بسازید و آنرا رمزنگاری کنید. یک کوکی بسازید و آنرا به پاسخ درخواست انجام شده از صفحه اضافه کنید و کاربر را هدایت کنید. این روش امکانات زیادی را در رابطه با نحوه ساخت کوکی به شما می دهد. مثلا می توانید داده های دلخواه خود را به کوکی اضافه کنید:

Private Sub cmdLogin_ServerClick(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles cmdLogin.ServerClick
    If Validateuser(txtUserName.Value,txtUserPass.Value) Then
        Dim tkt As FormsAuthenticationTicket
        Dim cookiestr As String
        Dim ck As HttpCookie

        tkt = New FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now(), _
        dateTime.Now.AddMinutes(30), chkPersistCookie.Checked, "your custom data")
        cookiestr = FormsAuthentication.Encrypt(tkt)
        ck = new HttpCookie(FormsAuthentication.FormsCookieName(), cookiestr)
        if (chkPersistCookie.Checked) then ck.Expires=tkt.Expiration
        ck.Path = FormsAuthentication.FormsCookiePath()
        Response.Cookies.Add(ck)

        Dim strRedirect As String
        strRedirect = Request("ReturnURL")
        If strRedirect <> "" Then
            Response.Redirect(strRedirect, True)
        Else
            strRedirect = "default.aspx"
            Response.Redirect(strRedirect, True)
        End If
    Else
        lblMsg.Text = "Unknown User! try again."
    End If
End Sub



درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

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








جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :