Рубрика «Программирование»

Работаем с рефлектором в c#

В данной заметке представлены методы по работе с рефлектором в c#, в особенности получение значения по полному пути к свойству. using System; using System.Collections.Generic; using System.Linq; using System.Reflection; namespace App.Infrastructure { public static class ReflectorUtil { /// <summary> /// Gets property type by path /// </summary> /// <param name=»objType»></param> /// <param name=»path»></param> /// <returns></returns> public …

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

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

Защищаемся от xss (.net, c#)

public class HtmlSanitizer { private static readonly Regex HtmlTagExpression = new Regex(@» (?’tag_start'</?) (?’tag’\w+)((\s+ (?’attribute'(\w+)(\s*=\s*(?:»».*?»»|’.*?’|[^'»»>\s]+)))?)+\s*|\s*) (?’tag_end’/?>)», RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Regex HtmlAttributeExpression = new Regex(@» (?’attribute’\w+) (\s*=\s*) («»(?’value’.*?)»»|'(?’value’.*?)’)», RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Dictionary<string, List<string>> ValidHtmlTags = new Dictionary<string, List<string>> { {«p», new List<string> …

Адаптивный слайдер jcarousel

Создадим слайдер, который бы адаптировался под разные устройства. Используем для этого jquery плагин jcarousel. Скачаем плагин http://sorgalla.com/jcarousel/dist/ и подключим у себя на странице. Добавим стили с помощью less // jCarousel // ——————- .jcarousel-wrapper { position: relative; } .jcarousel { position: relative; overflow: hidden; width: 100%; } .jcarousel ul { position: relative; width: 200%; list-style: none; margin: 0; …