:: Меню ::

Головна
  • Про сайт
  • Введення
  • Середовище програмування VB .NET: Visual Studio .NET
  • Вирази, оператори і передача управління
  • Класи і об'єкти
  •  Спадкоємство і інтерфейси
  • Обробка подій і делегати
  • Обробка помилок в VB .NET
  • Форми Windows, графічний вивід і друк
  • Уведення-виведення
  •  Багатопотокові застосування
  • Підтримка баз-даних в VB .NET
  • Короткий огляд ASP .NET
  • Складки .NET, установка додатків і COM Interop
  • Книга для гостей
    Контакти
    Добавити у вибране

    :: Друзі ::

     
     

    :: Лічильники ::

    = =

     

     

     

     

    Що передається клієнтові?

    Сценарії ASP .NET програмуються в звичайному стилі VB .NET, проте залежно від типу клієнтського броузера генерується різний код HTML. Наприклад, якщо клієнт працює в останній версії Internet Explorer, в коді, що згенерував, використовуються конструкції DHTML, а інтервальна перевірка здійснюється на стороні клієнта. Але якщо як броузера використовується стільниковий телефон з підтримкою WAP (Wireless Application Protocol), згенерує код WML (версія HTML для цієї платформи), а всі необхідні перевірки виконуватимуться сервером. І все це відбувається автоматично, абсолютно не вимагаючи особливих дій з боку програміста![ Якщо, звичайно, ви не займетеся розробкою нестандартних елементів для форм Web — в цьому випадку вам доведеться неабияк потрудитися. Елементи форм ^Veb повинні знати, який код слід генерувати для кожної конкретної платформи. ]

    Нижче приведений код попереднього прикладу, що згенерував для клієнтського броузера Internet Explorer, що працює в Windows XP. Ключові рядки виділені жирним шрифтом:

    <!DOCTYPE HTML PUBLIC "-//w3c//dtd HTML 4.0 Transitional//en"> <HTML>

    <HEAO>

    <title></title>

    <meta name="generator"content="microsoft Visual Studio.NET 7.0">

    <meta name="code_language"content="visual Basic 7.0">

    <meta name="vs_defaultclientscnpt"content="javascnpt">

    <meta name="vs_targetschema"

    content="http://schemas.microsoft.com/intel1isense/ie5">

    </head>

    <body Ms_positioning="gridlayout">

    <form name="forml" method="post" action="webforml.aspx" id="forml">

    <input type="hidden" name="_viewstate" value="ddwxmda3mze2mzey0zs+"/>

    <input type="subm1t" name="buttonl" value="click me!" id="buttonl"

    style="height:67px;width:123px;Z-INDEX: 101: LEFT :311px:

    Position:absolute;TOP:212px"/>

    <span id="labell"style="height:132px:width:631px:z-index:102:

    Left:15px;POSITION:absolute:TOP:40px"></span>

    </form>

    </body>

    </html>

    З виділеного фрагмента видно, що в HTML-код, що згенерував для клієнтської сторони, включена форма HTML з атрибутом post і прихованим полем _viewstate. Ці рядки дозволяють ASP .NET зберігати інформацію стану, не вимагаючи спеціальних дій з боку клієнта. Приховане поле _viewstate містить зашифровані дані, по яких ASP .NET може відновити сторінку і її стан. Механізм шифрування є особливим різновидом серіалізациі; щоб відключити збереження стану, задайте властивості Епаиє-viewstate значення False.

    Щоб краще зрозуміти, як відбувається збереження стану, натисніть кнопку і знову проглянете початковий текст. Цього разу ключові рядки HTML-кода виглядатимуть приблизно так:

    <form name="forml" method="post" action="webforml.aspx" id="forml">

    <input type="hidden" name="_viewstate"

    value="ddwxmda3mze2mzey03q802w8atwxpjs+

    02w8ddw7bdxppdm+oz47bdxopha

    8cDxsPEZvbnRfU216ZTtUZXh0018hUOI7PjtsPFN5

    c3rlbs5xzwiuvukuv2vi029udhjvbh

    Murm9udfvuaxqsifn5c3rlbs5xzwisifzlcnnpb

    249ms4wljiomteumcwgq3vsdhvyzt

    luzxvocmfslcbqdwjsawnlzxlub2tlbjlimdnmn

    Wy3zjexzduwytnhpfgtt6fyz2u+0

    ldlbgnvbwugdg8gqvnqlk5fvcbaoc8xos8ymdax

    Ideyojm20jawifbn02k8mtqwot

    47pj47pjs7pjs+pjs+pjs+"/>

    Хоча базовий файл .aspx, вказаний в атрибуті тега <form>, залишився тим самим, прихована змінна _viewstate змінилася вельми грунтовно. Фактично в цьому полі збережений повний стан елементів HTML і даних форми. Одна з переваг цього підходу полягає в тому, що програміст позбавляється від клопоту із збереженням стану. Він просто задає властивості Enableviewstate значення True і переходить до програмування логіки сторінки. З іншого боку, з кожною сторінкою доводиться пересилати додаткові дані. В більшості випадків їх об'єм відносно невеликий, тому переваги компенсують недоліки.

    Елементи введення (тег <input>) на стороні клієнта завжди запам'ятовують свій стан навіть після пересилки даних на сервер і назад. ASP .NET не дозволяє відключати автоматичне збереження стану для елементів введення.

    Нарешті, у кожної сторінки .aspx є властивість Sessi on, що повертає об'єкт з інформацією про поточну сторінку. Об'єкт Session можна розглядати як свого роду «cynepcookie» з можливістю збереження даних по ключу (як в хэш-таблицах). Приклад:

    Session("user name") = Textbox1.Text

    Вміст текстового поля Textboxl зберігається в об'єкті Session, а при зверненнях до -нему використовується рядок "user name".

    Брак місця не дозволяє розвивати цю тему, проте ми хочемо звернути увагу читача на одну обставину. У особливо складних ситуаціях, коли збереження всіх даних в об'єкті Session, що знаходиться в пам'яті сервера, небажано, інформація зберігається в базі даних SQL Server. Більш того, якщо сайт обслуговується web-комплексом, ви навіть можете вказати, на якому сервері повинна зберігатися ця інформація! Ці дві особливості значно покращують масштабованість додатків ASP .NET.

    Файл Web.config

    У ранніх версіях Windows конфігураційні дані зберігалися в ini-файлах, на зміну яким прийшов глобальний реєстр. У ASP .NET додатки фактично повертаються до часів текстових ini-файлов — конфігураційні дані зберігаються в текстовому файлі Web.config, що знаходиться в каталозі додатку. Цей файл визначає умови виконання додатків ASP .NET — такі як параметри відладки і системи безпеки. Конфігураційні файли мають досить складну структуру. Нижче приведений вміст файлу Web.config для попереднього прикладу:

    1 <?xml version-"1.0" encoding="utf-8"?>

    2 <configuration>

    3 <system.web>

    4 <!--DYNAMIC DEBUG COMPILATION

    5 Set compilation debug="true" to insert debugging symbols (.pdb

    6 information)into the compiled page.Because this creates а larger file

    7 that executes more slowly,you should set this value to true only when

    8 debugging.and to false at all other times.For more information,refer

    9 to the documentation about debugging ASP .NET files.

    10 -->

    11 compilation defaultl_anguage="vb" debug="true"/>

    12 <!--CUSTOM ERROR MESSAGES

    13 Set customerrors mode="0n" or "Remoteonly" to enable custom error

    14 messages. "Off"to disable.Add <error> tags for each of the errors

    15 you want to handle.

    16 -->

    17 <customerrors mode="remoteonly"/>

    18 <!--AUTHENTICATION

    19 This section sets the authentication policies of the application.

    20 Possible modes are "Windows". "Forms". "Passport" and "None"

    21 -->

    22 <authentication mode="windows"/>

    23 <!--AUTHORIZATION

    24 This section sets the authorization policies of the application.You can

    25 allow or deny access to application resources by user or role.

    26 Wildcards: "*" mean everyone "?" means anonymous (unauthenticated)

    27 users.

    28 -->

    29 <authorization>

    30 <allow users- "*" /><!-- Allow all users -->

    31 <!--<allow users="[comma separated list of users]"

    32 roles="[comma separated list of roles]"/>

    33 <Deny users="[comma separated list of users ]"

    34 roles="[comma separated list of roles]"/>

    35 -->

    36 </authorization>

    37 <!--APPLICATION-LEVEL TRACE LOGGING

    38 Application»level tracing enables trace log output for every page within

    39 an application.Set trace enabled= "true"to enable application trace

    40 logging.If pageoutput- "true",the trace information will be displayed at

    41 the bottom of each page.Otherwise,you can view the application trace

    42 log by browsing the "trace.axd"page from your Web application root.

    43 -->

    44 <trace enabled- "false" requestlimit = "10"

    45 pageoutput = "false" tracemode = "Sortbytime"

    46 localonly- "true" />

    47 (--SESSION STATE SETTINGS

    48 By default ASP .NET uses cookies to identify which requests belong to а

    49 particular session.If cookies are not available.a session can be

    50 tracked by adding а session identifier session.To disable cookies.set

    51 sessionstate cookieless = "true"'

    52 -->

    53 <sessionstate

    54 mode="inproc"

    55 stateconnectionstring - "tcpip=127.0.0.1:42424"

    56 sqlconnectionsthng = "data source= 127.0.0.1:userid=sa:password="

    57 cookieless="false"

    58 timeout="20"

    59 />

    60 <!--PREVENT SOURCE CODE DOWNLOAD

    61 This section sets the types of files that will not be downloaded.As

    62 well as entering а httphandler for а file type.you must also *

    63 associate that file type with the xspisapi.dll in the App Mappings

    64 property of the Web site.or the file can be downloaded.lt is

    65 recommended that you use this section to prevent your sources from

    66 being downloaded.

    67 -->

    68 <httphandlers>

    69 <add verb= "*" path= "*.vb"

    70 type= "System.Web.HttpNotFoundHandler.System.Web"/>

    71 <Add verb="*" path = "*.cs"

    72 type= "System.Web.HttpNotFoundHandler.System.Web"/>

    73 <Add verb="*" path="*.vbproj"

    74 type= "System.Web.HttpNotFoundHandler.System.Web"/>

    75 <Add verb="*" path="*.csproj"

    76 type= "System.Web.HttpNotFoundHandler.System.Web"/>

    77 <Add verb="*" path-"*.webinfo"

    78 type= "System.Web.HttpNotFoundHandler.System.Web"/>

    79 </httphandlers>

    80 <!--GLOBALIZATION

    81 This section sets the globalization settings of the application.

    82 -->

    83 <globalization requestencoding= "utf-8" responseencoding="utf-8"/>

    84 </system.web>

    85 </configuration>

    З рядка 1 видно, що сторінки ASP .NET, як і багато об'єктів .NET, будуються на базі XML. У рядках 2-11 міститься частина конфігураційного файлу, яка управляє налаштуваннями компіляції і визначає режим використання сторінки, — тестування/розробка або нормальна робота. У цій частині файлу також указуються мови, використані в сторінці (як видно з рядка І, в приведеному прикладі це VB).

    При перекладі додатку в робочий режим встановите у файлі Web.config параметр debug=false. Налагоджувальний режим грає важливу роль в процесі розробки, але на стадії використання він може серйозно уповільнити роботу додатку ASP .NET — в деяких випадках на порядок і навіть більш.

    Наступний розділ відноситься до перевірки привілеїв користувача (рядки 18-36). У приведеному лістингу параметрам аутентифікації привласнено значення «*»; це означає, що робота з додатком дозволена будь-якому користувачеві. Як видно з коментарів, що автоматично згенерували, до цього розділу, ви також можете вирішити або заборонити доступ до додатку за допомогою ключових слів allow і deny.

    Хороша схема аутентифікації займає важливе місце в програмуванні розподілених застосувань. Яким чином сторінка дізнається, ким є її користувач? У ASP .NET підтримуються три різновиди схем аутентифікації, перераховані в таблиці. 12.1.

    Таблиця 12.1. Схеми аутентифікації в ASP .NET

    Схема аутентифікації
    Опис
    Windows Використовується вбудована схема аутентифікації IIS (на екрані з'являється діалогове вікно для введення імені і пароля). Користувач повинен мати обліковий запис на даному комп'ютері
    Forms Найбільш поширена форма аутентифікації. Після успішної реєстрації сервер генерує cookie, що автоматично включається в заголовок повідомлення впродовж сеансу. При налаштуванні цієї схеми аутентифікації указується ім'я реєстраційної форми і сторінка ASP, що управляє нею .NET
    Passport Нова схема аутентифікації, що активно упроваджується компанією Microsoft

     

    Перші дві схеми цілком стандартні, тільки третя відносно нова. Пошук на сайті Googte показує, що на момент написання книги існували тисячі web-страниц з обговоренням достоїнств і недоліків схеми аутентифікації Microsoft Passport. За бажання ви можете самостійно вивчити цю тему і ухвалити власне рішення.

    Пам'ятаєте, що при будь-якій схемі аутентифікації HTTP залишається текстовим протоколом, тому інформація передається клієнтові в незашифрованому вигляді і може бути викрадена методом перехоплення пакетів (packet sniffing). Для боротьби з перехопленням використовується транспортний механізм SSL (Secure Socket Layer).

    Класи .NET Webrequest і Webresponse автоматично використовують SSL для URL, що починаються з префікса «https».

    Рядки 47-59 управляють станом сеансу. В більшості випадків використовуються стандартні механізми ASP .NET, що володіють достатньо могутніми можливостями. Починаючи з рядка 60 і до кінця файлу реалізується одна забавна можливість ASP .NET, що представляє особливий інтерес для тих, хто хоче захистити свою інтелектуальну власність. У цьому розділі приводиться список типів файлів, які не повинні прийматися клієнтом з сервера.

     




    :: Наша кнопка ::

    Отримати код:

    Підтримайте наш сайт і розмістіть нашу кнопку на своєму ресурсі.


    :: Реклама ::

    Скачати безкоштовно програму Microsoft Front Page 2003


    :: Посилання ::

    -


     

     

     


    Copyright ©