استفاده از ViewState در طراحی وب

استفاده از ViewState در طراحی وب

ViewState یکی از مهم ترین و پرکاربرد ترین انواع مدیریت حالت در طراحی وب می باشد. با استفاده از این مکانیزم شما می توانید اطلاعات خود را با هر PostBack ذخیره و بدون از دست رفتن اطلاعات بازیابی کنید (PostBack ارسال و دریافت داده از سرور). بطور کلی ساختار ViewState همانند Session می باشد اما Session تحت سرور عمل می کند اما ViewState تحت کلاینت. زمانی که شما یک صفحه ASP را ایجاد می کنید، صفحه مورد نظر به طور پیش فرض از ViewState پشتیبانی می کند مگر اینکه آن را به طور دستی غیر فعال کرده باشید. در این صورت کافی است قطعه کد زیر را به Header صفحه سایت خود اضافه کنید تا ViewState فعال شود :

<%@ Page Language="C#" EnableViewState="true"

برای ساخت و ایجاد یک ViewState می بایست با استفاده از روش زیر عمل کرد :

تعریف ViewState

ViewState.Add("مقدار","نام متغییر");
ViewState.Add("Username",UsernameTXT.Text);

تعریف ViewState

ViewState.Add("مقدار","نام متغییر")
ViewState.Add("Username",UsernameTXT.Text)

همچنین می توان ViewState را برای یک کنترل در صفحه فعال و غیر فعال کرد. برای این منظور از کد زیر می توانید استفاده کنید یا از طرفی بر روی کنترل مربوطه راست کلیک کرده و بر روی گزینه Properties کلیک کنید ، سپس مقدار EnableViewState را تغییر دهید :

TextBox1.EnableViewState=false;

همچنین برای بازیابی مقدار ذخیره شده در ViewState نیز می بایست به روش زیر عمل کرد :

بازیابی مقدار ViewState

TextBox1.Text=ViewState("نام متغییر");
string MyUsername=ViewState("Username");

بازیابی مقدار ViewState

TextBox1.Text=ViewState("نام متغییر")
string MyUsername=ViewState("Username")

طریقه ساخت ، فعال سازی و بازیابی مقدار را در ViewState دیدیم ، اما نکاتی در این باره وجود دارد که به آن می پردازیم. همانطور که در مباحث گفته شد ViewState تحت کلاینت یا کلاینت ساید می باشد و بر روی سیستم کاربر ذخیره می گردد. برای مشاهده ViewState ذخیره شده کافی است که کاربر بر روی صفحه کلیک راست کند و گزینه View Source را انتخاب کند که در این صورت تمامی مقدارهای ذخیره شده را خواهد دید. اما رشته ی ذخیره شده برای ViewState بصورت انکد(Encode) ذخیره شده که با الگوریتمی ساده قابل رمزگشایی و Decode کردن است. پس تا اینجا امنیتی برای ViewState وجود ندارد. اما یک روش برای بالا بردن امنیت ViewState ارائه شده است که برای شما شرح خواهیم داد. برای این منظور بهتر است الگوریتم Encode کردن ViewState را بهبود ببخشیم که برای این کار کافی است قطعه کد زیر را به فایل Web.config موجود در پروژه اضافه کنید و بعد از آن با خیال راحت از ViewState استفاده کنید.

<system.web>
  <pages enableViewStateMac="true" viewStateEncryptionMode="Always"></pages>
</system.web>



نظرات کاربران



عبارت امنیتی : حاصل 5 × 2 می شود :
متن پیام :