Проблемы со стороны сервера - PullRequest
4 голосов
/ 29 января 2010

Я отчаянно хочу использовать серверные включения в проекте, над которым я работаю, потому что у меня просто есть повторяющийся HTML-код, и мне нужно получить его на нескольких страницах. Должен Я использую ascx или какую-либо другую технологию включения ... Я имею в виду, будет ли удар молнии, если я использую серверные включения?

Мой клиент - средний человек - говорит: «Делай то, что проще всего, это, вероятно, скоро будет переделано в CMS». Могу ли я не использовать серверные включения?

Это ASP.NET 2.0.

Примечание: Мне кажется, об этом уже спрашивали, но я не смог его найти. Если это так, пожалуйста, дайте мне знать, и я лично удалю его, спасибо!

Редактировать: Любой способ получить включение ON ONE LINE будет хорошо для меня, если у вас есть предложения.

Редактировать: Почему мне нравятся включения?

Включите код:

!--#include file="inc_footer.aspx"-->

тот же код для элемента управления. Сначала вам нужен один из этих

<%@ Register TagPrefix="a" TagName="HeyFooter" Src="inc_footer.ascx" %>

и тогда вы можете использовать его вот так

<a:HeyFooter runat="server" />

это довольно долго для того, что мне нужно.

Примечание Две проблемы безопасности включают в себя: 1) не использовать расширение .inc, так как его можно просматривать. 2) не включайте имена файлов, основанные на пользовательских переменных, так как наилучшие ответы на вопросы o ut.

Ответы [ 3 ]

4 голосов
/ 29 января 2010

Если вы включаете файл через строковую переменную: <!--#include file=some_variable -->, то в зависимости от того, как эта переменная заполнена, возможны атаки, которые хакер может предпринять, чтобы включить свои файлы и запустить произвольный код на вашем компьютере. Но пока вы используете строковый литерал, вы не столкнетесь с этой проблемой.

Я бы использовал Мастер-страницы в ASP.NET. Это общепринятый способ иметь общие области страницы.

Вы создадите мастер-страницу аналогично обычным страницам, тогда изменение каждой из других страниц будет минимальным. Добавьте одну строку в начало каждого файла подкачки, затем укажите используемые разделы.

2 голосов
/ 29 января 2010

Нет, вам определенно не нужно использовать причудливые веб-формы .NET, чтобы делать это, если вы хотите сохранить простоту Просто поместите это в те места, куда вы хотите вставить:

<!--#include virtual="../repeatStuff/fun.html" -->

HTML будет отображаться там. Я дал путь один вверх и вниз по другому каталогу. Это «самый простой», но также имеет достоинство быть очень простым. Обратите внимание, что это не будет отображаться в вашем визуальном дизайнере. (Я никогда не использую это в любом случае.)

1 голос
/ 29 января 2010

Я все еще использую включает в себя время от времени именно для цели, которую вы описываете.

На самом деле вам не нужно регистрировать пользовательский элемент управления, потому что в любом случае это просто HTML. И вам не нужна главная страница, потому что на самом деле это всего лишь фрагмент HTML, который должен быть на нескольких избранных страницах.

Итак, у меня есть такие слова из глоссария справочных файлов:

<!--#include file="~/Glossary/BusinessDetails.inc"-->

По моему мнению, нет ничего плохого в том, чтобы использовать для этой цели файлы включения старой школы.

...