Программное создание ключей шифрования ASP.net

В разделе <machineKey> можно устанавливать специфический для каждого сервера ключ, который должен использоваться для шифрования данных и создания цифровых подписей.

Например

<machineKey
validationkey="61EA...B05D"
decryptionKey="61EA...37AF"
validation="SHA1" />

Значение validationKey может иметь от 40 до 128 символов. Настоятельно рекомендуется использовать ключи максимально возможной длины.

Значение decryptionKey может иметь 16 или 48 символов.

Создавать собственные ключи проверки достоверности и расшифровки не имеет большого смысла. Если же вы все-таки попытаетесь это сделать, они не будут в достаточной мере случайными, что сделает их неустойчивыми к некоторым типам атак. Приемлемым вариантом считается генерирование строго случайного ключа с помощью кода и криптографических классов .NET Framework (System.Security.Cryptography)

Далее показана подпрограмма базового кода, называемая CreateMachineKey(), которая создает случайную серию байтов с помощью криптографически строгого генератора случайных чисел. Метод CreateMachineKey() принимает один параметр, который определяет количество используемых символов. Результатом является шестнадцатеричный формат, который используется в файле machine.config

public static string CreateMachineKey(int length)
{
// создание массива байтов
byte[] random = new byte[length/2];

// создание криптографически строгого генератора случайных чисел
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();

// заполнение массива байтов случайными байтами
rng.GetBytes(random);

// создание StringBuilder для хранения результата
// после того как он будет преобразован в шестнадцатеричный формат
System.Text.StringBuilder machineKey = new System.Text.StringBuilder(length);

// Перебор массива случайных байтов и добавление
// каждого значения к StringBuilder
for (int i = 0; i < random.Length; i++)
{
machineKey.Append(String.Format("{0:X2}", random[i]));
}
return machineKey.ToString();
}

Пример использования

txtDecryptionKey.Text=CreateMachineKey(48);
txtValidationKey.Text=CreateMachineKey(128);

Далее Вы можете скопировать эту информацию и вставить ее в файл machine.config

Синтаксические конструкции (модификаторы) в регулярных выражениях

Метасимволы для сопоставления с отдельными символами

Символ Описание
Обычные символы Символы кроме .$^{[(|)*+?\ соответствуют сами себе
\b Соответствует возврату на одну позицию (забой)
\t Соответствует табуляции
\r Соответствует возврату каретки
\v Соответствует вертикальной табуляции
\f Соответствует переводу страницы
\n Соответствует новой строке
\ Если за ним следует специальный символ (один из .$^{[(|)*+?\), соответствует литеральной константе этого символа. Например, \+ соответствует символу +

Метасимволы для сопоставления с типами символов

Класс Символов Описание
. Соответствует любому символу кроме \n
[aeiou] Соответствует каждому отдельному символу, приведённому во множестве
[^aeiuo] Соответствует любому символу, не приведённому во множестве
[3-7a-dA-D] Соответствует любому символу, приведённому в определённых диапазонах
\w Соответствует любому символу из слова, т.е. любому алфавитно-цифровому символу или символу подчёркивания
\W Соответствует любому символу, не применяемому в словах
\s Соответствует любому символу разделителя (пробел, табуляция, перевод страницы, новая строка, возврат каретки либо вертикальная подача)
\S Соответствует любому непробельному символу.
\d Соответствует любому десятичному символу.
\D Соответствует любому недесятичному символу.

Квантификаторы

Квантификатор Описание
* ноль или более совпадений
+ Одно или более совпадений
? Ноль или одно совпадение
{N} N совпадений
{N,} N или более совпадений
{N,M} Между N и M совпадений (включительно)

Типичные регулярные выражения в ASP.net

// Минимальная длина -5, максимальная длина - 20
// Разрешенные символы: a-z, A-Z, 0-9

@"^[a-zA-Z0-9.]{5,20}$"

Внимание: знаки вставки (^) и разделителей денежных знаков ($) указывают здесь на то, что с выражением должна сравниваться вся введённая строка. Без этих символов выражение будет определять лишь наличие шаблона в строке. Это может привести к другим результатам.

В примеры шаблонов, поставляемых вместе с RegularExpressionValidator, не включены разделители, об этом не надо забывать.

// Минимальная длина -5, максимальная длина - 30
// Разрешенные символы: a-z, A-Z, [пробел]

@"^[a-zA-Z ']{5,30}$"

// Минимальная длина -5, максимальная длина - 20
// Разрешенные символы: a-z, A-Z, 0-9
// Первый символ: a-z, A-Z

@"^[a-zA-Z]{1}[a-zA-Z0-9.]{5,19}$"

e-mail, типовые регулярные выражения для электронной почты


// Действительный адрес электронной почты

@"^\w+([-+. ']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"

// e-mail: строка начинается с определённого количества символов (.*)
// и содержит символ @,
// а также еще минимум 1 символ для имени домена, точку (\.),
// и хотя бы 2 символа для расширения домена

".*@.{1,}\..{2}"

// e-mail: Обязательно должен присутствовать символ @ и точка (.),
// допускает наличие только непробельных символов

"\S+@\S+\.\S+"

Для проверки адреса электронной почты могут применяться самые разнообразные регулярные выражения, обладающие самой разной степенью сложности. Дополнительную информацию по этому вопросу и примеры можно найти по адресу http://4guysfromrolla.com/webtech/validateemail.shtml

Пароли


// Допускает любую последовательность словесных символов
// (букв, пробелов или символов подчеркивания)

"\w+"

// Пароль специфической длины
// Должен состоять не менее чем из 4,
// но и не более 10 символов

"\w{4,10}"

// Расширенный пароль
// Длина пароля от 4 до 10 символов
// Первый символ находится в диапазоне a-z или A-Z
// то есть должен начинаться с обычной буквы

"[a-zA-Z]\w{3,9}"

// Расширенный пароль
// Начинается с буквенного символа,
// за которым следует ноль или более словесных символов
// потом одна или более цифр
// затем снова ноль или более словесных символов
// То есть в пароле должна содержаться цифра

"[a-zA-Z]\w*\d+\w*"

Шаблоны

// Номер: 456-56-7894
// Последовательность групп из трёх, двух, затем четырёх цифр
// каждая из которых отделяется дефисом
// Может использоваться при вводе телефонного номера

"\d{3}-\d{2}-\d{4}"

Microsoft ASP.NET 3.5 с примерами на C# 2008 и Silverlight 2 для профессионалов

Автор:
Мэтью Мак-Дональд, Марио Шпушта

Microsoft ASP.NET 3.5 с примерами на C# 2008 и Silverlight 2 для профессионалов

Microsoft ASP.NET 3.5 с примерами на C# 2008 и Silverlight 2 для профессионалов

Книга "Microsoft ASP.NET 3.5 с примерами на C# 2008 и Silverlight 2 для профессионалов" известных специалистов в области технологий .NET Мэтью Мак-Дональда и Марио Шпушта представляет собой учебное и справочное пособие для разработчиков .NET-приложений, использующих новую версию ASP.NET 3.5 и Silverlight 2. Материал пересмотрен и дополнен с учетом нововведений, появившихся в пакете обновлений Service Pack 1 для .NET 3.5 - возможность объединения сценариев ASP.NET AJAX, поддержка хронологии браузера ASP.NET AJAX, ASP.NET Dynamic Data, ADO.NET Entity Framework и ADO.NET Data Services. Предложенный авторами практический подход к изложению материала не является простым повторением документации MSDN, а позволяет сконцентрироваться на решении конкретных задач, связанных с разработкой Web-приложений разного уровня сложности. Глубина изложения материала превращает эту книгу в незаменимый источник информации для разработчиков. Подробно рассматриваются все вопросы, связанные с ASP.NET 3.5, начиная с объектной модели и заканчивая взаимодействием с XML и различными поставщиками данных.

Благодаря этой книге, вы изучите следующие вопросы.

* Ключевые концепции ASP.NET 3.5. Специфика и фундаментальные принципы технологии. Основы Visual Studio. Создание элементов управления ASP.NET 3.5, помещение их на страницы ASP.NET 3.5 и построение полноценных приложений.
* Безопасность. Ахиллесова пята практически всех Web-приложений. Усовершенствования, появившиеся в ASP.NET 3.5.

Реализация и применение методов безопасности.
# Новые технологии построения пользовательских интерфейсов. Пользовательские элементы управления, в том числе серверные, JavaScript клиентской стороны и GDI+.
# Web-службы. Создание, развертывание и использование.
# ASP.NET AJAX. Особенности применения новой технологии разработки Web-приложений.
# Silverlight 2. Эффективное использование новой версии добавочной технологии ASP.NET, включая комплект Silverlight 2 SDK.
# Новые возможности, предлагаемые пакетом обновлений Service Pack 1 для .NET 3.5. Объединение сценариев ASP.NET AJAX, хронология браузера ASP.NET AJAX, ASP.NET Dynamic Data, ADO.NET Entity Framework и ADO.NET Data Services.
# Разработка с использованием Internet Information Services 7. Применение новой технологии хостинга от Microsoft.
# Многое другое.

Книга "Microsoft ASP.NET 3.5 с примерами на C# 2008 и Silverlight 2 для профессионалов" рассчитана на программистов разной квалификации, а также будет полезна для студентов и преподавателей дисциплин, связанных с программированием и разработкой для .NET.

Как вам должно быть известно, ASP.NET является основной технологией для разработки серверных Web-приложений от Microsoft. Версия ASP.NET 1.0 радикально изменила мир программирования для Web. О популярности ASP.NET 1.0 можно судить хотя бы по тому, что тысячи коммерческих Web- серверов приобрели лицензию на ее использование, несмотря на то, что в тот момент ASP.NET 1.0 пребывала на стадии бета-тестирования.
В этой книге вы ознакомитесь с ASP.NET 3.5 - следующим серьезным шагом к профессиональной разработке Web-приложений. В ASP.NET 3.5 было внесено множество мелких усовершенствований и добавлено два крупных новых средства. Первым таким средством является LINQ - впечатляющее дополнение, которое позволяет манипулировать данными, создавать XML-содержимое и извлекать записи из базы данных без написания низкоуровневого кода. Второе средство - это ASP.NET AJAX, представляющее собой инструментальный набор, который дает возможность создавать современные, быстро реагирующие Web-страницы с динамическими эффектами и плавным обновлением. Оба средства подробно описаны в книге. Кроме того, вам будет предложено введение в Silverlight 2 - браузерный подключаемый модуль нового поколения от Microsoft, который позволяет разрабатывать межплатформенные клиентские приложения, выполняющиеся непосредственно в браузере, и при этом пользоваться всеми удобствами языка C#. Вряд ли можно найти лучший способ подготовиться к будущему Web.
Добро пожаловать в клуб любителей ASP.NET!
Мэтью Мак-Дональд (Microsoft MVP, MCSD)

КОМПАКТ-ДИСК
На прилагаемом к книге компакт-диске содержатся главы на русском языке в формате PDF, не вошедшие в печатное издание, а также исходные коды всех примеров, рассмотренных в книге.

Мэтью Мак-Дональд - автор, преподаватель и разработчик, сертифицированный компанией Microsoft (MCSD). Его статьи постоянно публикуют во многих специализированных журналах по программированию, кроме того, он является автором более десятка книг по программированию для .NET.

Марио Шпушта работает в австрийском отделении Microsoft, которое называется Developer and Platform Group. Занимается чтением лекций, организацией семинаров и руководством проектами на базе Web-служб .NET и технологий Office 2003.

Формат:
PDF
Размер:
40.00mb
Год издания:
2008
Страниц:
1424
Добавлен:
05.02.2010
Раздел:

ASP.NET

Скачать бесплатно:

Ссылка 1

Скачать бесплатно:

Ссылка 2

Скачать бесплатно:

Ссылка 3

Microsoft ASP.NET 2.0. Углубленное изучение. Дино Эспозито

Автор:
Дино Эспозито

Microsoft ASP.NET 2.0. Углубленное изучение

Microsoft ASP.NET 2.0. Углубленное изучение
Эта книга - подробное руководство для профессионалов-разработчиков приложений ASP.NET. В ней раскрыты тонкости внутреннего функционирования исполняющей среды ASP.NET 2.0 и возможности ее конфигурирования, детально описан процесс выполнения приложений и средства, позволяющие сделать их надежными, эффективными и хорошо защищенными. Вы узнаете, как создавать пользовательские элементы управления, освоите новые навигационные средства ASP.NET 2.0 и научитесь формировать оптимальное представление данных с помощью новых элементов управления.
Книга состоит из 15 глав и адресована тем, кто не ограничивается прикладными сведениями, почерпнутыми из обычных учебных пособий, а намерен разобраться во всех деталях внутреннего функционирования исполняющей среды ASP.NET 2.0.
Формат:
DJVU
Размер:
30.17mb
Год издания:
2007
Страниц:
592
Добавлен:
03.02.2010
Раздел:

ASP.NET

Скачать бесплатно:

Ссылка 1

Скачать бесплатно:

Ссылка 2

Скачать бесплатно:

Ссылка 3

Microsoft ASP.NET 2.0. Базовый курс. Дино Эспозито

Автор:
Дино Эспозито

Microsoft ASP.NET 2.0. Базовый курс

Microsoft ASP.NET 2.0. Базовый курс
Эта книга - подробное руководство для профессионалов-разработчиков приложений ASP.NET.
В ней описаны технологии создания эффективных, масштабируемых и надежных сайтов на платформе ASP.NET 2.0, обладающих разнообразным и согласованным пользовательским интерфейсом. Вы узнаете, как создавать эталонные страницы, персонализировать вывод сайта и адаптировать его к возможностям браузера, познакомитесь с широким ассортиментом средств ASP.NET для работы с данными, научитесь эффективно кэшировать информацию, аутентифицировать пользователя и авторизировать его доступ к серверным ресурсам.
Книга адресована тем, кто не ограничивается прикладными сведениями, почерпнутыми из обычных учебных пособий, а намерен разобраться во всех деталях внутреннего функционирования исполняющей среды ASP.NET 2.0; состоит из 15 глав и предметного указателя.
Формат:
DJVU
Размер:
35.57mb
Год издания:
2007
Страниц:
688
Добавлен:
03.02.2010
Раздел:

ASP.NET

Скачать бесплатно:

Ссылка 1

Скачать бесплатно:

Ссылка 2

Скачать бесплатно:

Ссылка 3

ASP.NET. Учебный курс. Бучек Г.

Автор:
Бучек Г.

ASP.NET. Учебный курс

ASP .NET. Учебный курс
Книга посвящена технологии ASP. NET, предназначенной для создания web-приложений масштаба предприятия. В книге рассмотрены способы разработки приложений с использованием программирования, основанного на событиях, приводится механизм персонификации посетителей узлов с помощью функций ASP. NET, описываются приемы комбинирования стандартных HTML-элементов, web-элементов управления ASP. NET и кодов обработки событий для обеспечения быстрого генерирования и обновления содержимого web-страниц. На прилагающемся компакт-диске (iso - шник данного диска вложен в архив с книгой) находятся готовые к использованию web-решения и исходные коды всех программ, рассмотренных в книге.
Формат:
DJVU
Размер:
23.06mb
Год издания:
2002
Страниц:
512
Добавлен:
02.02.2010
Раздел:

ASP.NET

Скачать бесплатно:

Ссылка 1

Скачать бесплатно:

Ссылка 2

Скачать бесплатно:

Ссылка 3

Вывод webmoney на карточку Приватбанка

Как и многие другие активные пользователи интернета, я не пренебрегаю заработком в Сети. Однако, при пользовании титульными знаками (webmoney), да и другими видами электронных денег возникает вопрос: как их обналичить.

Обычно рекомендуют покупать товары в интернет за webmoney, и тем самым не тратить свои кровнозаработанные наличные. Либо перепродавать купленные за webmoney товары.

Я могу сказать, что это не всегда удобно, потому как иногда просто нужна наличность. Решить вопрос можно через посредников - сервис обмена электронных денег и услуг ввода/вывода.

Сегодня я тестировал сервис ukrwebmoney.com.

В 11.30 утра я перевел простым переводом деньги на кошелек WMZ, указанный на сайте. Необходимо обязательно указать в примечании

Вывод WM на карту ПриватБанка
номер карты:*
тип карты (дол. или грн.):
ФИО владельца карты:

иначе деньги вернут назад.

В 14.30, проходил мимо банкомата Приватбанка, деньги уже были на счету.

Комиссия ukrwebmoney составила 4%. Больше никаких проблем.

Карточка у меня долларовая, поэтому сколько WMZ отправил, столько и получил (-4%).

А если у Вас будет гривневая карчтока, то деньги будут пересчитаны по коммерческому курсу.

При курсе НБУ 7.99, коммерческий курс вывода составил бы 8.00

Подытоживая скажу, что первый блин не оказался комом, и ukrwebmoney.com можно доверять.

Установка кода Liex на сайт ASP.net

В данной статье рассмотрим один из способов установки тематического кода Liex на сайт на платформе ASP.net с поддержкой PHP (Windows-хостинг).

О том, как установить код биржи, подробно написано на самом сайте Liex.ru

Перед добавлением площадки обязательно нужно установить на нее в папку ****** код биржи. Этой папке нужно дать права на запись (777). После добавления внесите изменения в корневой htaccess (см. пункт меню "Тематики")

На windows-хостинге нет понятия право на запись 777, необходимо разрешить запись в эту папку. В большинстве случаев Вы можете сделать это самостоятельно.

Считаем, что Вы установили скрипт, и теперь надо настроить тематики.

Данные строки нужно вставить в корневой htaccess вашего сайта (если в нем есть другие правила mod_rewrite, то тогда НАД ними):

RewriteEngine On
RewriteRule ^pages/?$ /b33b9479d2e/ [L]
RewriteRule ^stroika/?$ /b33b9479d2e/stroika.php [L]
RewriteRule ^stroika/(\d+)/?$ /b33b9479d2e/stroika_$1.php [L]
RewriteRule ^stroika/([0-9]+).(php|htm|html)$ /b33b9479d2e/$1.$2 [L]
RewriteRule ^in-yaz/?$ /b33b9479d2e/in-yaz.php [L]
RewriteRule ^in-yaz/(\d+)/?$ /b33b9479d2e/in-yaz_$1.php [L]
RewriteRule ^in-yaz/([0-9]+).(php|htm|html)$ /b33b9479d2e/$1.$2 [L]
...

Естественно, ни о каком htaccess на Windows-хостинге речи быть не может.

В качестве аналога RewriteEngine можно использовать бесплатную библиотеку UrlRewritingNet.

Необходимо скачать с сайта библиотеку UrlRewritingNet.UrlRewriter.dll и закинуть ее в папку BIN Вашего проекта.

Прописать в файле web.config необходимые настройки

<?xml version="1.0"?>
<configuration>
<configSections>
<section name="urlrewritingnet"
restartOnExternalChanges="true"
requirePermission="false"
type="UrlRewritingNet.Configuration.UrlRewriteSection,
UrlRewritingNet.UrlRewriter"/>
</configSections>
<urlrewritingnet
configSource="<strong>ExternalRewrite.config</strong>">
</urlrewritingnet>
...
<system.web>
<httpModules>
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.urlRewriter"/>
</httpModules>

Обратите внимание, если библиотека UrlRewritingNet не отработала на Вашем хостинге, тогда добавьте в файл web.config следующие строки

<system.webServer>

<modules>
<add name="UrlRewriteModule"
type="UrlRewritingNet.Web.UrlRewriteModule,
UrlRewritingNet.UrlRewriter" />
</modules>

Итак, Вы зарегистрировали библиотеку, теперь необходимо ее настроить. При заданной конфигурации, все настройки будут храниться в файле ExternalRewrite.config

Берем необходимые тематики с сайта Liex и прописываем в конфигурационном файле

Например


<?xml version="1.0"?>
<urlrewritingnet
rewriteOnlyVirtualUrls="true"
contextItemsPrefix="QueryString"
defaultPage = "Default.aspx"
defaultProvider="RegEx"
xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >

<rewrites>

<add name="liexpagesRoot"  virtualUrl="^<strong>~/pages/</strong>"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="<strong>~/b33b9479d2e/main.php</strong>"
ignoreCase="true" />

<add name="liexCinema"  virtualUrl="^~/cinema/([0-9]+).(php|htm|html)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/b33b9479d2e/$1.$2"
ignoreCase="true" />

<add name="liexCinemaRoot"  virtualUrl="^~/cinema/"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/b33b9479d2e/cinema.php"
ignoreCase="true" />

<add name="liexgrafika"  virtualUrl="^~/grafika/([0-9]+).(php|htm|html)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/b33b9479d2e/$1.$2"
ignoreCase="true" />

<add name="liexgrafikaRoot"  virtualUrl="^~/grafika/"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/b33b9479d2e/grafika.php"
ignoreCase="true" />

...
</rewrites>
</urlrewritingnet>

Обратите внимание на то, что все имена должны быть уникальны.

Каталог статей в данном примере ~\pages.

Вот и все. Теперь все должно работать. Вам необходимо лишь прописать все темы, либо только те, которые Вы принимаете.

Примечание:

Не каждый windows-хостинг поддерживает PHP и файлы .htaccess. А файл .htaccess автоматически записывается в Вашу папку со статьями.

Примеры Windows-хостинга:

Seattlehost - при наличии файла .htaccess в папке выдает ошибку сервера 500

Godaddy - работает без проблем, файл .htaccess игнорируется

Comfoplace - работает без проблем, только при условии, что в настройках хостинга Вы укажите, что поддержка PHP - запустить как расширение ISAPI

Облако тегов на странице ASP.net (wp_cumulus) Flash

Мне лично, да и многим людям понравилось облако тегов на флэше wp_cumulus.

В интернете я нашел всего несколько страниц, которые описывают как сделать такое облако тэгов на ASP.net.

В качестве первоисточника возьмем статью http://dev.net.ua/blogs/eugenekhvedchenya/pages/8134.aspx

(Не уверен, что это первоисточник, но другой статьи под рукой не оказалось)

Итак.

На днях случайно обнаружил очень красивое "живое" облако тегов на флеше:

Само облако тегов написано на флеше, встраивается в страницу с помощью SWFObject, а данные для визуализации берет из набора передаваемых флеш-объекту параметров. Изначально данный плагин предназначался для WordPress, однако мой пытливый ум сразу сказал - "Мне такое надо! Причем на страницах ASP.NET!"

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

text/javascript">
var widget_so9010252 = new SWFObject("tagcloud.swf?r=1510412", "tagcloudflash", "160", "160", "9", "#f8f8f8");
widget_so9010252.addParam("allowScriptAccess", "always");
widget_so9010252.addVariable("tcolor", "0x5391d0");
widget_so9010252.addVariable("tcolor2", "0x333333");
widget_so9010252.addVariable("hicolor", "0x5391d0");
widget_so9010252.addVariable("tspeed", "100");
widget_so9010252.addVariable("distr", "true");
widget_so9010252.addVariable("mode", "tags");
widget_so9010252.addVariable("tagcloud", ".....");
widget_so9010252.write("wpcumuluswidgetcontent");

Вот и вся магия :) Основная проблема была в том, что параметры облака тегов очень плохо документированы, и пришлось немало порыться, прежде чем все заработало так как надо.

Остальное дело техники. Наибольшую трудность вызывает формирование параметра tagcloud, так как туда требуется передать строку с XML особого вида, где все пробелы заменены символом +.

Итак, поехали:

[assembly: WebResource("wpCumulus.swfobject.js", "text/javascript")]
[assembly: WebResource("wpCumulus.tagcloud.swf", "application/x-shockwave-flash")]

Флеш-объект и необходимый JS-код встроены в сборку как ресурсы, так что контрол является полностью самодостаточным и не требует для работы никаких дополнительных файлов.
Создаем новый UserControl, который будет уметь рендерить в себе нужный нам JS код:

[ToolboxData("")]
public class WPCumulus : DataBoundControl
{
        ....

        protected override void CreateChildControls()
        {
            ClearChildViewState();
            Controls.Clear();
            Page.ClientScript.RegisterClientScriptResource(GetType(), "wpCumulus.swfobject.js");
        }

        protected override void RenderContents(HtmlTextWriter output)
        {
            var hiddenContentId = ClientID + ClientIDSeparator + "HiddenContent";

            var tagCloud = GenerateTagCloud();
            var script = CreateScriptString(tagCloud, hiddenContentId);

            output.Write(String.Format("", hiddenContentId));
            output.Write("");
            output.Write(script);
            output.Write("");
        }

        ....
}

Как видно из кода, наш класс наследуется от DataBoundControl, что позволяет нам использовать DataBinding для построения списка тегов на основании произвольного источника данных. Для отображения тега в облаке нам необходимы три параметра - Имя Тега, его вес (число ссылок по теме) и ссылка на целевую страницу. За маппинг этих параметров из источника данных отвечают три свойства в классе:

DataTextField - Указывает имя свойства, которое соответствует имени тега.

DataCountField - Указывает имя свойства, которые указывает вес тега.

DataUrlField - Указывает имя свойства, которое соответствует ссылке для данного тега.

Для настройки внешнего вида облака тегов нам доступны следующие параметры:

BackColor - Цвет фона.

TagColor1 - Указывает основной цвет шрифта тега.

TagColor2 - Вспомогательный цвет тега (используется для градиентного перехода при уходе тега на задний план).

HiColor - Цвет тега, когда над ним находится указатель мыши.

TagSpeed - Задает скорость вращения облака (Единицы измерения - попугаи. Оптимальные значения - 20..500 попугаев)

Distr - Булевый параметр отвечает за равномерное распределение тегов по облаку. True - чтобы все было красиво.

MinimumTagSize - Минимальный размер шрифта у тега (для тега с минимальным весом).

MaximumTagSize - Максимальный размер шрифта у тега (для тега с максимальный весом).

Применение контрола:

Сперва опишем наш элемент управления в коде ASPX:
<cc1:WPCumulus ID="WPCumulus1" runat="server" DataCountField="Count"
        DataTextField="Text" DataUrlField="Link" Width="400" Height="400"
        BackColor="#CCCCCC" HiColor="#66FF33" TagColor1="Red" TagColor2="Blue"  Distr="True"  />
Теперь в файле отделенного кода мы можем привязаться к облаку тегов:
WPCumulus1.DataSource = new[]{
                              new {Text = "Silverlight", Count = 10, Link="/Tags/Silverlight" },
                              new {Text = "IIS 7", Count = 11, Link="http://iis.net" },
                              new {Text = "IE 8", Count = 12, Link="/Tags/IE8" },
                              new {Text = "C#", Count = 13, Link="/Tags/C#" },
                              new {Text = "Azure", Count = 13, Link="?Tag=Azure" }
                             };
WPCumulus1.DataBind();

В результате должно получиться что-то такое:

Приятного использования!

Исходники контрола и демо можно скачать тут: http://flashtagcloud.codeplex.com/

Вместо заключения

Уже после написания контрола нашел в сети аналог для BlogEngine. Но во-первых, их версия заточена под движок и, следовательно, не реюзабельна. Во-вторых написана ногой через голову.

Ограничения Фичи

1) Облако "падает" при большом количестве тегов (Более 400).

2) Не поддерживается кирилица.

Я предлагаю Вам скачать библиотеку wp_cumulus уже с поддержкой кирилицы.

wp_cumulus for ASP.net with Cyrylic