ورود / ثبت نام
0
0

احراز هویت فرم ها در ASP.Net

706 بازدید
احراز هویت

احراز هویت

در این مقاله نشان می دهیم که چگونه در فرم های اپلیکیشن خود کاربران را احراز هویت نماییم.Form Authentication برای وب اپلیکیشن ها استفاده می شود. مزایای آن این است که کاربران شما دیگر مجبور نیستند برای دسترسی به اپلیکیشن شما در شبکه های مبتنی بر دامنه عضو شوند.

سه نوع احراز هویت در ASP.Net وجود دارد:

  • Windows authentication
  • Forms authentication
  • Passport authentication

در این مقاله فقط Forms Authentication  را پیاده سازی می کنیم.

برای استفاده از احراز هویت فرم باید مراحل زیر را در پروژه خود اجرا کنیم.

گام ۱: ویژوال استودیو را باز کرده، از منوی File، New Project و سپس ASP.Net web Application را انتخاب و نام مناسبی برای پروژه انتخاب می کنیم و Ok می کنیم.

احراز هویت

گام ۲: بعد از انتخاب  web application قالب Empty را از اینجا انتخاب می کنیم.

احراز هویت

گام ۳: در این پروژه دو صفحه login.aspx و welcome.aspx را اضافه می کنیم.

احراز هویت

 

احراز هویت

گام ۴: حالا باید تنظیمات web.config را برای پیاده سازی Forms Authentication تغییر دهیم.

<configuration>  
    <appSettings>  
        <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />  
    </appSettings>  
    <system.web>  
        <compilation debug="true" targetFramework="4.5" />  
        <authentication mode="Forms">  
            <forms loginUrl="login.aspx" defaultUrl="welcome.aspx">  
                <credentials passwordFormat="Clear">  
                    <user name="Baran" password="baran@123"/>  
                    <user name="mspsoft" password="mspsoft@123" />  
                </credentials>  
            </forms>  
        </authentication>  
        <authorization>  
            <deny users="?"/>  
        </authorization>  
        <httpRuntime targetFramework="4.5" />  
    </system.web>  
</configuration>  

در اینجا Forms authentication mode را اضافه کرده و loginUrl را روی صفحه login.aspx که اضافه کردیم، می گذاریم و همچنین دو کاربر را برای احراز هویت تخصیص می دهیم. بنابراین تنها این دو کاربر می توانند در اپلیکیشن ما احراز هویت نمایند. اگر هر کاربر دیگری برای ورود به سایت تلاش نمایند، این کاربران نادیده گرفته می شوند که در تگ authorization مشخص شده است.

گام ۵: حال یک فرم لاگین در صفحه login.aspx ایجاد می کنیم. برای این کار از کد زیر استفاده می کنیم:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="FormAuth.Login" %>  
<!DOCTYPE html>  
<html  
    xmlns="http://www.w3.org/1999/xhtml">  
    <head runat="server">  
        <title></title>  
    </head>  
    <body>  
        <form id="form1" runat="server">  
            <h3>  
      Login Page</h3>  
            <table>  
                <tr>  
                    <td>  
          UserName:</td>  
                    <td>  
                        <asp:TextBox ID="UserName" runat="server" />  
                    </td>  
                    <td>  
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1"   
            ControlToValidate="UserName"  
            Display="Dynamic"   
            ErrorMessage="Cannot be empty."   
            runat="server" />  
                    </td>  
                </tr>  
                <tr>  
                    <td>  
          Password:</td>  
                    <td>  
                        <asp:TextBox ID="UserPass" TextMode="Password"   
             runat="server" />  
                    </td>  
                    <td>  
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2"   
            ControlToValidate="UserPass"  
            ErrorMessage="Cannot be empty."   
            runat="server" />  
                    </td>  
                </tr>  
                <tr>  
                    <td>  
          Remember me?</td>  
                    <td>  
                        <asp:CheckBox ID="chkboxPersist" runat="server" />  
                    </td>  
                </tr>  
            </table>  
            <asp:Button ID="Submit1" OnClick="Login_Click" Text="Log In"   
       runat="server" />  
            <p>  
                <asp:Label ID="Msg" ForeColor="red" runat="server" />  
            </p>  
        </form>  
    </body>  
</html>  

گام ۶: کد مربوط به رویداد کلیک لاگین در کلاس login.aspx.cs به صورت زیر می باشد:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Web.Security;  
  
namespace FormAuth {  
    public partial class Login: System.Web.UI.Page {  
        protected void Page_Load(object sender, EventArgs e) {  
  
        }  
  
        protected void Login_Click(object sender, EventArgs e) {  
            if (FormsAuthentication.Authenticate(UserName.Text, UserPass.Text)) {  
                FormsAuthentication.RedirectFromLoginPage(UserName.Text, chkboxPersist.Checked);  
            } else {  
                Msg.Text = "Invalid User Name and/or Password";  
            }  
        }  
    }  
}  

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

FormsAuthentication.Authenticate که دو پارامتر نام کاربری و پسورد را می گیرد، کاربر را احراز هویت نموده و بعد از ورود موفقیت آمیز به صفحه welcome هدایت می کند.

گام ۷: بعد از نوشتن کد این دو صفحه، حالا می توانیم از اپلیکیشن خود اجرا بگیریم. وب سایت ما به صورت زیر باز خواهد شد:

احراز هویت

در اینجا نام کاربری و پسورد معتبری که در web.config مشخص کرده ایم وارد می کنیم. اگر هر داده نامعتبر دیگری وارد کنیم، خطای زیر رخ خواهد داد.

احراز هویت

گام ۸: با وارد کردن نام کاربری و پسورد معتبر، اپلیکیشن ما به طور موفقیت آمیز احراز هویت را انجام می دهد و کاربر را به صفحه اصلی هدایت می کند.

در اینجا ما گزینه Remember me را تیک زدیم، به این معنی که اگر لاگین کرده و مرورگر را ببندیم، بار دیگر که مرورگر را باز کرده و بخواهیم به صفحه اصلی دسترسی پیدا کنیم، بدون لاگین مجدد بتوانیم این کار را انجام دهیم. به این معنی که کوکی مرورگر ما فعال بوده و داده های کاربر تا زمانی که مرورگر را پاک نکرده باشد، ذخیره شده و نگه داری می شوند.


احراز هویت

احراز هویت

  • پسورد: www.mspsoft.com
آیا این مطلب را می پسندید؟
https://www.mspsoft.com/?p=17382
اشتراک گذاری:
واتساپتوییترفیسبوکپینترستلینکدین
فاطمه زکایی
فاطمه زکایی هستم. فارغ التحصیل کارشناسی مهندسی نرم افزار، مدت سه سال هست که در زمینه توسعه اپلیکیشن های تحت وب و اندروید و همچنین تولید محتوای تخصصی برنامه نویسی تحت وب و اندروید در مجموعه mspsoft در خدمت شما هستم.
مطالب بیشتر
برچسب ها:

نظرات

0 نظر در مورد احراز هویت فرم ها در ASP.Net

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

هیچ دیدگاهی نوشته نشده است.