Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Блог Мэтра/Записи в блоге |
Передача двух параметров в GridView на ASP.NET
2016-10-09 01:48:00 (читать в оригинале)Зачастую программистам требуется передать в (из) GridView более одного параметра при обращении к базе данных MS SQL Server,
в этом примере показано как передать и получить три параметра из переменной сессии.
Т.е. пользователь на странице выбирает из GridView необходимую строку с данными, которая является гиперссылкой и перенаправляется на эту же страницу, но уже с выбранными тремя параметрами и таким образом получается что-то вроде перехода по "дереву" данных таблицы базы данных.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="Azure" HeaderStyle-BackColor="Red" HeaderStyle-Font-Bold="True" BorderColor="gray" CellPadding="3" CellSpacing="0" Font-Size="8pt" ForeColor="Black" DataKeyNames="Razdel" DataSourceID="SqlDataSource3" Width="100%"> <AlternatingRowStyle BackColor="LightCyan" /> <Columns> <asp:BoundField DataField="kod" HeaderText="Код" ItemStyle-ForeColor="Red" ItemStyle-Font-Bold = "True" SortExpression="Razdel" /> <asp:HyperLinkField DataNavigateUrlFields="Razdel, Urov, kod" DataNavigateUrlFormatString="~/index.aspx?Rz={0}&Ur={1}&kd={2}" DataTextField="Name1" ItemStyle-Font-Bold = "True" HeaderText="Наименование" /> </Columns> <EmptyDataTemplate> <font color="Red"><B>Нет входжения.</B></font></BR></BR></BR> <A href="~/index.aspx"><B>Переход в начало >>></B></A></BR></BR></BR> <A href="javascript: history.back()"><B><<< Переход назад </B></A> </EmptyDataTemplate> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource" runat="server" DataSourceMode="DataSet" connectionstring="<%$ ConnectionStrings:Conn %>" SelectCommand="SELECT Razdel, Urov, Kod, Name1 FROM Table WHERE (Razdel = @Rz) AND (Urov = @Ur) AND (Kod=@Kd) ORDER BY Kod"> <SelectParameters> <asp:SessionParameter SessionField="Rz" Name="Rz" Type="String" /> <asp:SessionParameter SessionField="Ur" Name="Ur" Type="String" /> <asp:SessionParameter SessionField="Kd" Name="Kd" Type="String" /> </SelectParameters> </asp:SqlDataSource>
Редирект 301 на ASP.NET
2016-09-18 02:04:00 (читать в оригинале)Довольно часто вебмастерм необходимо в своей практике использовать перенаправление посетителей сайта с одной страницы на другую или даже с одного сайта на другой. Причин этому может быть достаточно много, так например, как известно, что обычно существуют на хостингах зеркала сайтом, имена которых отличаются приставкой www. Не будем вдаваться в подробности существования подобных «зеркал», но знайте, что это совершенно два разных сайта, которые имеют точную копию другого, поэтому пользователь набирая адрес сайта с www и без, попадают на один и тот же сайт, но они считаются разными сайтами. То же самое происходит и с роботами, которые обходят ваши сайты, они видят два разных сайта, хотя фактически это один. Теперь представьте, что другие вебмастера на своих сайтах делают ссылки на ваш сайт, что нам и хотелось бы как можно больше, с разными названиями вашего сайта, т.е с www или без. В результате ссылочная масса на ваш сайт разделялась бы на две части, что и делают поисковые роботы, а ваша позиция сайта в этом случае так же примерно в два раза ухудшилась, поскольку в настойках своего сайта вы указываете основное «зеркало» сайта как, например, без www. Обычно это указывается в файле robots.txt.
Так вот, чтобы избежать подобных проблем, необходимо использовать редирект с кодом 301, что сообщает поисковым роботом, что страница перенесена «навсегда» по новому адресу. Для сайтов на ASP.NET это можно сделать в конфигурационном файле web.config который расположен в корне вашего сайта. В нем необходимо вставить в секцию <system.webServer> следующий код, который перенаправляет посетителей и роботов с домена с www на домен без www/
<rewrite> <rules> <rule name="Redirect from WWW" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^www\.(.+)$" /> </conditions> <action type="Redirect" url="http://{C:1}/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite>
Или так:
<rewrite> <rules> <rule name="Redirect from WWW" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^www.myasp.ru$" /> </conditions> <action type="Redirect" url="http://myasp.ru/{R:0}" redirectType="Permanent" /> </rule> </rules> </rewrite>
Или так методом простого удаления www в запросе:
<rewrite> <rules> <rule name="Remove WWW" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{CACHE_URL}" pattern="*://www.*" /> </conditions> <action type="Redirect" url="{C:1}://{C:2}" redirectType="Permanent" /> </rule> </rules> </rewrite>
Если вы хотите сделать редирект на другой сайт, тогда используйте такой код:
<rewrite> <rules> <rule name="Redirect" stopProcessing="true"> <match url=".*" /> <action type="Redirect" url= "http://myasp.ru" redirectType="Permanent" /> </rule> </rules> </rewrite>
SQL-иньекции
2016-05-22 02:30:00 (читать в оригинале)В последнее время меня стало напрягать увеличение количества SQL-иньекций в MS SQL базах моих сайтов, когда к многим текстовым полям добавляются скрытые спамерские ссылки. Ссылки заключаются в тэги <div style="display:none"></div>, что делает их невидимыми на страницах сайтов, но понижает рейтинг страниц в поисковых системах.
Чтобы посмотреть или выбрать зараженные записи в таблице. можно воспользоваться скриптом на T-SQL:
SELECT * FROM table WHERE (pole LIKE '<div style="display:none">')
Когда количество таких записей в таблице достигает больших значений, то удаление зараженных строк становится проблематичным и в этом случае можно воспользоваться следующим скриптом:
update table set pole =SUBSTRING(pole,0,CharIndex('<div style="display:none">',pole)) where pole like '%<div style="display:none">%'
Этот скрипт подчищает "концы" всех записей с содержимым <div style="display:none">, при этом не изменяет исходную информацию.
Ну и наконец после удаления ненужных текстов можно защитить конкретное поле таблицы от записи в них текстов с содержащих строку <div style="display:none">
Для этого необходимо на этой таблице сформировать триггер следующего содержания:
CREATE TRIGGER [dbo].[back]
ON [dbo].[table]
AFTER UPDATE, INSERT
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS (SELECT * FROM table WHERE pole LIKE '%<div style="display:none">%')
ROLLBACK;
END
Все это конечно временное решение и нужно искать истинную причину заражения.
SQL-иньекции
2016-05-22 02:30:00 (читать в оригинале)В последнее время меня стало напрягать увеличение количества SQL-иньекций в MS SQL базах моих сайтов, когда к многим текстовым полям добавляются скрытые спамерские ссылки. Ссылки заключаются в тэги <div style="display:none"></div>, что делает их невидимыми на страницах сайтов, но понижает рейтинг страниц в поисковых системах.
Чтобы посмотреть или выбрать зараженные записи в таблице. можно воспользоваться скриптом на T-SQL:
SELECT * FROM table WHERE (pole LIKE '<div style="display:none">')
Когда количество таких записей в таблице достигает больших значений, то удаление зараженных строк становится проблематичным и в этом случае можно воспользоваться следующим скриптом:
update table set pole =SUBSTRING(pole,0,CharIndex('<div style="display:none">',pole)) where pole like '%<div style="display:none">%'
Этот скрипт подчищает "концы" всех записей с содержимым <div style="display:none">, при этом не изменяет исходную информацию.
Ну и наконец после удаления ненужных текстов можно защитить конкретное поле таблицы от записи в них текстов с содержащих строку <div style="display:none">
Для этого необходимо на этой таблице сформировать триггер следующего содержания:
CREATE TRIGGER [dbo].[back]
ON [dbo].[table]
AFTER UPDATE, INSERT
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS (SELECT * FROM table WHERE pole LIKE '%<div style="display:none">%')
ROLLBACK;
END
Все это конечно временное решение и нужно искать истинную причину заражения.
Прошивка IP-телефона Cisco 7940G
2015-12-09 12:26:00 (читать в оригинале)В конторе один из IP-телефонов Cisco 7940G, работающий в режиме SCCP вышел из строя так, что не реагировал на нажатие любых кнопок, ну и конечно не соединялся с корпоративной сетью. Перезагрузка и сброс к заводским настройкам положительного результата не приносили.
После изучение форумов в интернете мы пришли к выводу, что телефон необходимо перепрошить и для этого потребуется Прошивка IP-телефона Cisco 7940G.
Первоначально нам попалась прошивка SIP «P0S3-8-12-00» и после ее установки мы поняли, что для нашей корпоративной сети необходима родная прошивка SCCP, тогда мы подсмотрев в работающих телефонах номер прошивки «P0030801010» нашли ее в интернете и повторили процедуру с уже родной прошивкой, после чего телефон нормально загрузился в английской версии и появилась возможность править сетевые конфиги. Когда сетевые настройки были установлены и телефон подключили к корпоративной сети, то через некоторое время он подключился к CallManager и обновился до русскоязычной версии, восстановив свой номер в сети и имя пользователя по своему MAC-адресу.
Кстати позднее в интернете попалась статья, что именно для восстановления работоспособности необходимо сначала прошить телефон под SIP-версию и только потом под SCCP, теперь уже не знаю, надо ли было прошивать под SIP или можно было обойтись сразу SCCP. Ну одним словом в нашем случае телефон заработал, а проверить прошивкой сразу на SCCP теперь сможем только при следующем отказе ;)
Ну а теперь расскажу порядок прошивки, что и как мы делали.
Прошивку IP-телефона Cisco 7940G под версию SIP я опускаю, т.к. там отличие только в файлах прошивки.
Итак для начала нужно скачать TFTP сервер по ссылке: http://tftpd32.jounin.net/tftpd32_download.html, где выбираем необходимую версию под свою операционную систему. Программа не инсталлируется, а просто копируется в любую папку, откуда и будет запускаться и туда же будут складываться файлы прошивки *.loads, *.sbn, *.bn2, *.bin и конфигурационный файл XMLDefault.cnf.xml.
Собираем простейшую схему подключения – IP-телефон подключаем к любому хабу и к нему же другим кабелем подключаем компьютер или ноутбук с программой TFTP-сервера и файлами прошивок.
На сетевой карте компьютера прописываем IP-адрес 192.168.1.1 маска 255.255.255.0
Запускаем TFTP сервер
1. В поле Current Directory прописываем путь до своей директории TFTP сервера если он не прописался автоматически.
2. В поле Server interface выбираем сетевую карту которую мы настроили на IP-дрес 192.168.1.1
3. По кнопке Setting открывается окно, где выбираем вкладку TFTP и устанавливаем там галку на Bind TFTP to this address и выбираем 192.168.1.1, так же устанавливаем TFTP Security в значение «None», в окне Base Directory выбираем директорию конфигурационного файла, собственно ту же где у нас все файлы и сама программа TFTP.
4. На вкладке DHCP назначаем пул адресов начинающийся например с адреса 192.168.1.4 и любым размером например 5, хотя достаточно и одного, все равно IP-телефону присвоится первый 192.168.1.4
5. В поле Additional Option забиваем в маленькое поле 66 в большое 192.168.1.1 Остальные поля как на скриншоте.
6. Далее телефон надо перезагрузить либо по питанию, либо клавишами * + 6 + Setup или сбросить заводские настройки удерживая клавишу # подать питание и после моргания индикаторов набрать последовательно 123456789*# и далее по кнопкам 1 и 2 сохранить или переписать существующие настройки.
Если в файле XMLDefault.cnf.xml правильно прописана строка:
<loadInformation model="IP Phone 7940"> P0030801010</loadInformation>,
то телефон после перезагрузки начнет прошиваться.
По окончании прошивки необходимо поменять все сетевые настройки на те, что были в нем прописаны для работы в корпоративной сети.
Для доступа к настройкам необходимо сделать разблокировку настроек по клавишам **#, чтобы «замочек» в интерфейсе телефона открылся.
Еще возможно потребуется в сетевых настройках телефона установить опцию DHCP «No», иначе не сможете поменять IP-адрес телефона.
Вот собственно и все, далее включаем телефон в корпоративную сеть, где он дополнительно закачивает необходимые данные и работает как новый.
По ссылке ниже можно скачать настроенную программу TFTP и файлы, там же вложена Прошивка IP-телефона Cisco 7940G версии SCCP:
tftpd32.452.rar (1,05 mb)
+657 |
774 |
Zombiefan.ru Фильмы про зомби |
+654 |
754 |
VKSeattle |
+643 |
762 |
Правила форума |
+620 |
626 |
Lexsandr |
+614 |
633 |
Mandrake |
-3 |
2 |
Темы_дня |
-4 |
347 |
Компания Альпари |
-7 |
20 |
Prestissima |
-7 |
5 |
BlogRider |
-8 |
4 |
Любер |
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.