آموزش ASP.NET

آموزش ASP.NET متفاوت از آنچه جاهای دیگر می بینید!

آموزش ASP.NET

آموزش ASP.NET متفاوت از آنچه جاهای دیگر می بینید!

مرحله چهارم: تشخیص بازدیدکنندگان احراز هویت شده و تصمیم گیری در

آنچه مسلم است، ما باید اطلاعات متفاوتی به کاربران شناسایی شده و کاربران ناشناس نمایش دهیم. علاوه بر این اغلب اوقات ما نیاز داریم که مشخصات کاربر شناسایی شده را بدانیم. 

اجازه دهید برای شرح دادن این شیوه صفحه Default.aspx را تکمیل کنیم. در صفحه Default.aspx دو کنترل Panel اضافه کنید؛ یکی به نام AuthenticatedMessagePanel و دیگری به نام AnonymousMessagePanel. یک کنترل Lable به نام WelcomeBackMessage  در داخل Panel اول اضافه کنید. در داخل Panel دوم یک کنترل Hyperlink اضافه کنید و مشخصه Text آن را به Log In و مشخصه NavigateUrl آن را به ~/Login.aspx تغییر دهید. در این حالت کدهای صفحه Default.aspx باید به صورت زیر باشد:

<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">

<asp:Panel runat="server" ID="AuthenticatedMessagePanel">

<asp:Label runat="server" ID="WelcomeBackMessage"></asp:Label>

</asp:Panel>

<asp:Panel runat="Server" ID="AnonymousMessagePanel">

<asp:HyperLink runat="server" ID="lnkLogin" Text="Log In" NavigateUrl="~/Login.aspx"></asp:HyperLink>

</asp:Panel>

</asp:Content>

مشخصه Request.IsAuthenticated یک مقدار بولی که تعیین می‏کند درخواست احراز هویت شده است یا نه، را برمی‏گرداند.

کدهای زیر را در رویداد Page_Load بنویسید:

protected void Page_Load(object sender, EventArgs e)

{

if(Request.IsAuthenticated)

{

WelcomeBackMessage.Text = "Welcome back!";

AuthenticatedMessagePanel.Visible = true;

AnonymousMessagePanel.Visible = false;

 

else

{

AuthenticatedMessagePanel.Visible = false;

AnonymousMessagePanel.Visible = true;

}

}

با فرض اینکه شما هنوز وارد سایت نشده‏اید، با اجرای صفحه Default.aspx یک پیوند به صفحه Login می‏بینید (شکل زیر). 

 

 

 

با استفاده از مشخصه User شیء Httpcontext می‏توانیم کاربر جاری را شناسایی کنیم. شیء Httpcontext اطلاعاتی در مورد درخواست جاری نمایش می‏دهد. همچنین این شیء مکانی برای اشیاء عمومیASP.NET  مانند Response، Request و Session و غیره می‏باشد.

مشخصه User به وسیله FormsAuthenticationModule تنظیم می‏شود. به ویژه، هنگامی که FormsAuthenticationModule یک برچسب احراز هویت فرم‏ها در داخل درخواست وارد شده پیدا می‏کند، یک شیء جدید از GenericPrincipal ایجاد و آن را به مشخصه User نسبت می‏دهد.

اشیاء Principal (مانند GenericPrincipal) اطلاعاتی درباره مشخصات کاربر و نقشی که به آن تعلق دارند را تهیه می‏کنند. برای واسط IPrincipal دو عضو تعریف گردیده است:

·    IsInRole(roleName): یک متد است که یک مقدار بولی که نشان می‏دهد که Principal متعلق به نقش مشخص شده هست یا نه، را برمی‏گرداند.

·    Identity: یک مشخصه است که یک شیء که رابط IIdentity را پیاده سازی می‏کند را برمی‏گرداند. برای IIdentity سه مشخصه تعریف شده است: AuthenticationType، IsAuthenticated و Name.

ما با استفاده از کد زیر می‏توانیم نام بازدید کننده جاری را به دست آوریم:

string currentUserName = User.Identity.Name;

وقتی از احراز هویت فرم‏ها استفاده می‏شود یک شیء FormsIdentity برای مشخصه GenericPrincipal’s Identity ایجاد می‏شود. کلاس FormsIdentity همیشه برای مشخصه AuthenticationType رشته "Forms" و برای مشخصه IsAuthenticated مقدار true را برمی‏گرداند. مشخصه Name نام کاربری که هنگام ایجاد برچسب احراز هویت فرم‏ها مشخص شده است را برمی‏گرداند.

حالا صفحه Default.aspx را طوری تغییر می‏دهیم که جمله خوش آمدگویی شامل نام کاربر نیز باشد. بدین منظور کد زیر را در رویداد Page_Load قرار می‏دهیم:

WelcomeBackMessage.Text = "Welcome back, " + User.Identity.Name + "!";

نظرات 1 + ارسال نظر
سعید جمعه 14 شهریور‌ماه سال 1393 ساعت 04:32 ب.ظ

عالی بود

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد