معرفی ویژگی ViewStateEncryptionMode در صفحات وب
  در این ترفند به معرفی وپژگی ViewStateEncryptionModeو رمزنگاری محتویات ViewState در صفحات وب می پردازم
   ASP.NET
   ۱۶۹۸۲
   این مقاله حاوی فایل ضمیمه نمی باشد
   مرتضی صحراگرد
   ۱۳۸۹/۵/۲۵
ارسال لینک صفحه برای دوستان ارسال لینک صفحه برای دوستان  اضافه کردن به علاقه مندیها اضافه کردن به علاقه مندیها   نسخه قابل چاپ نسخه قابل چاپ

 

همانطور که حتما مستحضر می باشید، محتویات ViewStateدر صفحات وب به صورت کد شده ای ذخیره می شوند. اما این محتویات به سادگی قابل نمایش و بررسی می باشند و در نتیجه هرگز نباید اطلاعات حساس خود را در این ویژگی ذخیره نمایید.

اما در عمل گاهی به واقع نیاز می شود که اطلاعات نسبتا حساسی را در برخی صفحات در ویژگی ViewStateذخیره نماییم. قبلا در مقاله ای به معرفی روشی جهت رمزنگاری ViewState پرداخته ایم. در این مقاله به معرفی روش دیگری جهت رفع این مشکل می پردازیم.

یکی از ویژگی های موجود در صفحات وب ViewStateEncryptionMode می باشد. با استفاده از این ویژگی می توان مشخص نمود   که محتویات ViewState به صورت رمز شده در صفحات ذخیره شود یا خیر.

در قسمت زیر مثالی از نحوه روش استفاده از ViewStateEncryptionMode را ملاحظه می نمایید.

<%@ Page Language="C#" ViewStateEncryptionMode="Auto" %>

ویژگی ViewStateEncryptionMode می تواند حاوی سه مقدار باشد:

  1. Never: در صورتی که مقدار Never را به ویژگی ViewStateEncryptionMode اختصاص دهیم، محتویات ViewState بدون هیچ گونه رمز نگاری در صفحات ذخیره می شوند.

  2. Always: در صورتی که این مقدار را انتخاب نماییم، محتویات ViewState به صورت رمز نگاری شده در صفحه وب ذخیره می شوند. هنگامی که محتویات ViewState به سرور ارسال می شود (هنگام انجام عملیات PostBack)، ابتدا محتویات رمز گشایی (Decrypt) شده و مورد استفاده قرار می گیرد و سپس محتویات جدید مجددا رمزنگاری (Encrypt) شده و برای صفحه وب ارسال می شود. در نتیجه در صورتی که نیاز دارید محتویات ViewState به شکل رمزشده در صفحه ذخیره شود، می توانید از این روش استفاده نمایید.

  3. Auto: این مقدار، مقدار پیشفرض ویژگی ViewStateEncryptionMode می باشد. در این حالت محتویات ViewState به طور پیشفرض بدون هیچگونه رمزنگاری در صفحه ذخیره می شوند ولی در صورتی که هر کدام از کنترل های موجود در صفحه هنگامی که در حال ایجاد شدن هستند، متد Page.RegisterRequiresViewStateEncryption را فراخوانی نمایند، محتویات ViewState به شکل رمزنگاری شده در صفحه ذخیره می شود.

نکات مهم:

  1. برای رمزنگاری ViewState از کلیدی که در  قسمت<machineKey> قرار دارد استفاده می شود.

  2. بدیهی می باشد که عمل رمزنگاری و رمزگشایی مقداری زمانبر بوده و دارای هزینه هایی می باشد و روی سرعت و راندمان صفحات وب تاثیر منفی می گذارد. بنابراین تنها زمانی محتویات ViewState را رمزنگاری کنید که حتما بدان نیاز می باشد.