Записи с меткой «asp.net-mvc»

Исключаем ненужные файлы из публикации asp.net-mvc приложения

Проделаем некоторые действия для того чтобы исключить из публикации ненужные файлы, в моем случае это были файлы .less и .map. Это файлы производные препроцессора css — lesscss. Создадим файл в корне приложения MyWebApplication.wpp.targets Откроем этот файл и добавим следующие строчки: <?xml version=»1.0″ encoding=»utf-8″?> <Project ToolsVersion=»4.0″ xmlns=»http://schemas.microsoft.com/developer/msbuild/2003″> <ItemGroup> <ExcludeFromPackageFiles Include=»**/*.less»/> <ExcludeFromPackageFiles Include=»**/*.css.map»/> </ItemGroup> </Project> Из пространства …

Делаем свою реализацию RemoteAttribute (asp.net-mvc)

В asp.net-mvc атрибут RemoteAttribute используется для того чтобы на клиенте удаленно проверять правильно ли пользователь ввел значение.  Это удобно, к примеру, когда нужно проверить существующий email или ник. Но недочет в том, что на самом сервере не производится повторная проверка после того, когда пользователь нажимает на кнопку submit. Исправим этот недочет. Наш класс: public class …

Делаем свою капчу (asp.net, c#)

Механизм капчи такой: генерируем картинку с рандомным кодом из символов, запоминаем этот код в сессии, показываем поле пользователю для ввода кода с картинки и после отправки этого поля, делаем проверку на совпадение этого кода с кодом хранящимся в сессии. Создадим класс, который будет генерировать код и создавать картинку public class SimpleCaptcha { public string Generate(Stream stream) { …

Делаем позднее связывание при помощи ninject (c#)

Для этого устанавливаем пакет Ninject.Extensions.Xml при помощи менеджера пакета nuget. Создаем файл NinjectRegistrations.xml в корне приложения <module name=»NinjectRegistrations»> <bind service=»WebApp.Interfaces.IElmahWrap, Core» to=»WebApp.Mvc.Infrastructure.ElmahWrap, PresentationLogic» scope=»singleton» /> <bind service=»WebApp.Interfaces.ICaptcha, PresentationLogic» to=»WebApp.Infrastructure.DefaultCaptcha, PresentationLogic» scope=»singleton» /> </module> В Global.cs прописываем следующие строки var kernel = new StandardKernel(); if (System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory + «\\NinjectRegistrations.xml»)) kernel.Load(AppDomain.CurrentDomain.BaseDirectory + «\\NinjectRegistrations.xml»);

Делаем pagination (asp.net, c#)

Реализуем пагинацию, которая будет содержать кнопки вперед, назад, переходы на первую, вторую, предпоследнюю, последнюю и собственно переходы по номерам страниц. Такая пагинация будет выглядеть примерно так:  И так приступаем. Создадим представление _Pagination.cshtml @model Pagination <ul class=»pagination»> @for (var i = 0; i < Model.Pages.Count; i++) { <li class=»@(Model.Pages[i].IsCurrenPage ? «active» : «») @(Model.Pages[i].Disabled ? «disabled» : …

Делаем авторизацию на основе базовой http аутентификации

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

Базовая HTTP аутентификация

В данной заметке опишу как поднять базовую http авторизацию на своем сайте. Для начала вкратце опишу как работает механизм авторизации клиент запрашивает запрещенный ресурс сервер отдает страницу со статусом 401 и c заголовком WWW-Authenticate», «Basic realm=»My Realm» клиент смотрит на этот заголовок и предлагает пользователю ввести логин и пароль. Страницу 401 еще не отображается, пользователь видит белый экран. пользователь …