Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)

Бодибилдинг
Программы тренировок для занятий штангой, гантелями; описание тренажеров

Я записываю курсы!
  Курс валют

НБУ курс евро






Скрытие пути изображения (защита изображения) ASP.NET



Вот еще достаточно полезный кусочек знаний для новоиспеченных ASP.NET-чиков. Сегодня покажу вам как прятать от пользователей названия изображений сайта и папок сервера, в которых данные изображения находятся. Идея состоит в том, что пользователь не имеет возможности определить исходный путь и название изображения. В любом браузере, в свойствах изображения не будет отображаться путь к файлу изображения на сервере. Все, что увидит пользователь, это какой-то исполняемый файл, и только:

ashx защита скрытие пути изображения картинки

Кстати, расширенная версия хендлера рассматривается в следующей статье динамическое формирование пути изображения И так, поехали.

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

<body>
  <form id="form2" runat="server">
  <div>
        
    <img id="Img1" runat="server" 
    src="~/BackFile.ashx" />
        
<br />

    <asp:Image ID="Image1" runat="server" 
    ImageUrl="~/BackFile.ashx" />
        
  </div>
  </form>
</body>

Первое изображение вставлено с помощью тега <img />, второе - .NET – контрол <asp:Image />. Для тега <img /> назначили свойство src, а для контрола <asp:Image /> – ImageUrl в значение ="~/BackFile.ashx".

Как вы наверное догадались, это внешний обработчик – файл, который и будет отдавать требуемое изображение.

Ну а сам файл BackFile.ashx находится в корне сайта и содержит следующий код:

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.IO;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;

public class Handler : IHttpHandler 
{
   public void ProcessRequest (HttpContext context) 
   {
      Image img = Image.FromFile(
        context.Server.MapPath("IMAGES/image1.jpg"));
      
      MemoryStream stream = new MemoryStream();
      img.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
 
      byte[] byteArray = new Byte[stream.Length];
      stream.Position = 0;
      stream.Read(byteArray, 0, (int)stream.Length);

      System.IO.MemoryStream stream = 
        new System.IO.MemoryStream(byteArray);
      context.Response.ContentType = "image/jpeg";
        
      context.Response.BinaryWrite(byteArray);
   }
 
   public bool IsReusable 
   {
      get 
      {
          return false;
      }
   }
}

Или

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.IO;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;

public class Handler : IHttpHandler 
{
   public void ProcessRequest (HttpContext context) 
   { 
      Image img = Image.FromFile(
        context.Server.MapPath("IMAGES/image1.jpg"));
      
      MemoryStream memStream = new MemoryStream();
      img.Save(memStream, 
        System.Drawing.Imaging.ImageFormat.Jpeg);

      context.Response.ContentType = "image/jpeg";
      memStream.WriteTo(context.Response.OutputStream);

   }
 
   public bool IsReusable 
   {
      get 
      {
          return false;
      }
   }
}

Мне по душе второй вариант – писать меньше, да и незачем лишний раз возиться с byte[] byteArray.

В итоге, если пользователь попытается узнать путь к графическому файлу на сервере, то он получит лишь путь к обработчику, а имя самого файла изображения и путь к нему узнать не сможет.



Больше информации читайте по теме:



Оценить статью:

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

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        


        Alex    13.07.2010 19:39:08
        

Спасибо. Полезная инфа.




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Черный список покупателей
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок