Расширение функциональности Web контроллеров. Часть 2

  • Автор темы Автор темы NikSoft
  • Дата начала Дата начала
N

NikSoft

Рассмотрим доступ к ассамблее CheckBoxNik.dll посредством URL. Ресурсы, вложенные в ассемблею, могут быть доступны посредством WebResource.axd HTTP хэндлера (hanler) , доступ к которому может быть осуществлен посредством следующего URL:

Код:
http://site/ WebResource.axd?d=assembleyKey&t=date…

где assembleyKey – закодированная строка с именем ассамблеи, содержащая ресурс;
date – время последней модификации ассамблеи.
Хэндлер WebResource.axd возвращает содержимое ресурса. По умолчанию ресурсы, вложенные в ассамблею, не могут быть доступны через WebResource.axd хэндлер. С целью указания того, что ресурс может быть доступен, необходимо добавить следующую строку в файл AssemblyInfo.cs( находящийся в поддиректории Properties проекта CheckBoxNik )

Код:
[assembly: WebResource("CheckBoxNik.JavaScript.js", "text/javascript")]

Первый параметр строки указывает имя ресурса и должен иметь следующую структуру: RootNamespace.PathToFile. Второй параметр указывает MIME тип ресурса. Когда браузер запрашивает внешний ресурс он делает отдельный HTTP запрос к Web серверу. MIME тип указывает браузеру тип возвращаемых данных. В нашем случае "text/javascript". Нам осталось написать код, генерящий соответсвующий URL для вложенного ресурса. Для этого используем метод GetWebResourceUrl(type, webResource)класса ClientScriptManager. В нашем случае мы имеем следующий код:

Код:
Page.ClientScript.GetWebResourceUrl(this.GetType(), "CheckBoxNik.JavaScript.js")

Код,приведенный в функции OnPreRender,добавляет к HTML текст, аналогичный приведенному в нижеследующем фрагменте:

Код:
<script src="/Costupdate/WebResource.axd?d=YHGnQVKQhfy87NAy-V-TRA2&t=632970991192343750" type="text/javascript"></script>

Браузер, при обработке данного кода, делает запрос к WebResource.axd HTTP хэндлеру, который извлекает вложенный ресурс ( в нашем случае Java script ) и шлет его браузеру.
Я привел пример расширения Web контроллера, используя только Java script. На практике в ассамблею можно вложить такие ресурсы как CSS файлы, графические имиджи, HTML файлы.
 
Ничо не понял. Любое решение должно решать некую проблему. Какую проблему ты решал?

Что такое ассамблея? Есть замечательная книга Hacking Code, которую я прочитал сразу в оригинале, а потом решил перечитать, но уже в печатном издании и на русском. Гневное письмо от расстроенного читателя ушло потом в русскую редакцию, такое ощущение, что учитель географии в деревне её переводил со словариком 45 года, добытого под Берлином. Мораль басни проста. Не надо придумывать своих слов - всё давно придумано.

Для: NikSoft
В целом идея понятна. Что-то новое даже для себя узнал. Но был бы моложе ничего не понял бы. Посмотри со стороны на то что написал.
 
Для: karlito
Посмотри на заголовок:
Расширение функциональности Web контроллеров. Часть 2
Это продолжение 1ой части
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!