Software Architect, Microsoft MVP
Авторизация в ASP.NET Core MVC
Logo designed by Pablo Iglesias.
В статье описаны паттерны и приемы авторизации в ASP.NET Core MVC. Подчеркну, что рассматривается только авторизация (проверка прав пользователя) а не аутентификация, поэтому в статье не будет использования ASP.NET Identity, протоколов аутентификации и т.п. Будет много примеров серверного кода, небольшой экскурс вглубь исходников Core MVC, и тестовый проект (ссылка в конце статьи). Приглашаю интересующихся под кат.
Содержание:
- Claims
- Подготовительные работы
- Атрибут Authorize и политики доступа
- Настройки политик доступа
- Resource-based авторизация
- Авторизация в Razor-разметке
- Permission-based авторизация. Свой фильтр авторизации
Как рекламировали компьютеры в 1990-е
Если вы, с мыслью: «надо брать», спешите на объявление откликнуться, прочтите сначала то, что напечатано мелким шрифтом. $3495 – это за не совсем новый диск. 10-мегабайтник, которым ещё никто не пользовался, обойдётся немного дороже, в $4495. Но, честно говоря, оно того стоит.
Поиграл == покодил
Мой рекорд скорости написания кода «на C» был в консоли Quake II. Причем абсолютно без ошибок. В темноте, не глядя, трясущимися руками надо было набрать примерно такое:
bind SHIFT "+snipe"
alias +snipe "sensitivity 2.5; fov 30"
alias -snipe "fov 90; sensitivity 4"
Боги умели прописывать RocketJump.
bind t "superrjr"
bind a "superrjn"
alias superrjr "echo SuperRocketJump enabled; bind a +srj; bind t superrjc"
alias superrjn "echo SuperRocketJump disabled"
alias superrjc "echo SuperRocketJump disabled; bind a superrjn; bind t superrjr"
alias +srj "lookdown1;hand 2;rjump"
alias -srj "lookdown2"
alias lookdown1 "cl_pitchspeed 999999;+lookdown"
alias lookdown2 "-lookdown;cl_pitchspeed 200;-attack;-moveup;wait;wait;wait;centerview;hand 2;cl_maxfps 80"
alias rjump "+moveup;+attack;wait;wait;wait;wait;cl_maxfps 0"
alias +QLD "+lookdown;cl_pitchspeed 999"
alias -QLD "-lookdown;cl_pitchspeed 200"
alias +RocketJump "hand 2;+QLD;wait;wait;+attack;+moveup"
alias -RocketJump "hand 2;-QLD;-attack;-moveup"
alias SuperRocketJump "hand 2;+QLD;wait;wait;wait;wait;+attack;+moveup;wait;cl_maxfps 0;LWX3;cl_maxfps 90;-QLD;-attack;-moveup;hand 2"
Под катом — подборка дюжины проектов, которые заточены на то, чтобы играючи повысить кодерское мастерство.
Консоль разработчика Google Chrome: десять неочевидных полезностей
На первый взгляд, перед нами – вполне обычная JavaScript-консоль, которая годится только на то, чтобы выводить в неё логи ответов серверов или значения переменных. Я, кстати, так ей и пользовался, когда только начал программировать. Однако, со временем набрался опыта, подучился, и неожиданно для себя обнаружил, что консоль Chrome умеет много такого, о чём я и не догадывался. Хочу об этом сегодня рассказать. Да, если вы читаете сейчас не на мобильнике, можете тут же всё это и попробовать.
Видеозаписи лучших докладов .NET-конференции DotNext 2016 Piter
Пока подготовка к московскому DotNext идёт полным ходом, мы открыли доступ к видеозаписям докладов с прошедшей летом конференции. По ссылке — полный плейлист, а под катом — топ-5 докладов по отзывам участников. Говоря «топ», мы не имеем в виду наши любимые доклады или выбор каких-то «экспертов» — лучшие отобраны на основе взвешенной оценки от 80% участников конференции. Как думаете, чьё выступление зрители оценили выше — перфоманс-эксперта Саши Гольдштейна или харизматичного Дино Эспозито?
ASP.NET Core на Nano Server
Node.js и JavaScript вместо ветхого веба
Вступление
Эта статья про экспериментальный технологический стек общего назначения. Она не просто дублирует мой доклад на конференции ОдессаJS 2016, но содержит все то, что в доклад не поместилось из-за недостатка времени и исключительного масштаба темы. Я даже перезаписал доклад голосом по тексту статьи и это можно послушать, а не читать. С этой темой я уже выступил в Уханьском Университете (Китай), а в Киевском Политехническом Институте провел целую серию семинаров в 2015-2016 годах. Основная идея состоит в том, что проблемы фрагментации технологий могут быть решены, если спроектировать весь технологический стек, сконцентрировавшись на структурах данных, синтаксисе и протоколе взаимодействия компонентов. Большинство вопросов несовместимости, отпадет само собой. Пусть даже этот подход будет альтернативным и экспериментальным, но его задача будет выполнена, если он наметит путь и продемонстрирует принципиальную возможность создания простого и элегантного решения общего назначения. Эта идея является естественным продолжением подхода Node.js, когда мы сокращаем количество языков и технологий в системе, разрабатывая и клиент и сервер на JavaScript. Несмотря на экспериментальность, протокол JSTP уже используется в коммерческих продуктах, например, для интерактивного телевидения компанией SinceTV, где позволяет подключить одновременно десятки миллионов пользователей. Это решение получило приз за инновации в области телевидения на международном конкурсе Golden Panda Awards 2015 в Ченду (Китай). Есть внедрения в сфере управления серверными кластерами, готовятся решения для медицины, интерактивных игр, электронной торговли и услуг.
Разработка веб-сайта на базе ASP.NET Core и Platformus CMS
Несколько интересных фактов
Платформус — бесплатная система управления содержимым с открытым исходным кодом. Она кроссплатформенная, модульная и расширяемая. Данные в ней представлены в виде объектов, которые описываются классами. Поддерживается мультиязычность.
Написана CMS на C#. Благодаря возможностям ASP.NET Core, она одинаково хорошо может работать на Windows, Linux и Mac. Сама исполняемая среда, необходимая для работы любого приложения на .NET Core, может быть как установлена отдельно, так и интегрирована непосредственно в само приложение. В качестве веб-сервера может использоваться IIS либо Kestrel (во втором случае приложение становится веб-сервером для самого себя и может работать самостоятельно или же быть встроено в контейнер вроде IIS или Nginx). В качестве хранилища данных на текущий момент поддерживаются Microsoft SQL Server, SQLite и PostgreSQL. С учетом всего перечисленного, можем получить конфигурацию, которой для работы не требуется вообще ничего стороннего — скопировал, запустил и пользуешься (может быть удобно для тестирования, например).
(В статье несколько десятков скриншотов.)
Условное внедрение зависимостей в ASP.NET Core. Часть 2
В первой части статьи были показаны настройки инъектора зависимостей для реализации условного внедрения зависимости с использованием механизмов Environment и Configuration, а также получение сервиса в рамках HTTP-запроса, основываясь на данных запроса.
Во второй части вы увидите, как можно расширить возможности инъектора зависимостей, на примере выбора необходимой реализации по идентификатору во время выполнения приложения.
От регистрации до витрины: как выложить мобильное приложение в App Store и Google Play (часть 1)
Начинающие мобильные разработчики часто испытывают затруднения при выкладывании своих проектов в Google Play и App Store. И если с первым особых проблем не возникнет, то со вторым придется повозиться, особенно, если вы выкладываете приложение от юридического лица. Поэтому в помощь начинающим мы решили написать туториал по размещению в официальных сторах приложений под iOS и Android.
Полный список инструментов и утилит для Microsoft SQL Server
Полезные платные и бесплатные утилиты, инструменты для Microsoft SQL Server — полный список из 165 инструментов.
VIM: зачем, если есть IDE, и как?
Сегодня вышел текст о том, как человек перешёл с Sublime на VIM. В комментариях, как обычно это бывает, появились сообщения в духе "Зачем мне тратить время на Vim, если есть IDE, где всё работает?" (люди даже статьи на эти темы пишут). Хотел внести свои пять копеек, но объём написанного плавно перевёл текст из разряда "комментарий" в разряд небольшой статьи.
В целом, всё, что ниже — это вкусовщина, конечно. Нравится вам ваша IDE (или ваш текущий инструмент), да и пожалуйста. Используйте для текущих задач то, чем вы владеете лучше всего, это аксиома эффективной работы. Но если у вас вдруг появилось немного времени на повышение вашей эффективности в целом, то попробую вас заинтересовать именно Vim'ом, сравнивая его с некой обобщенной IDE.
Переговоры о зарплате — как не прогореть
Все фотографии в этой статье взяты из трилогии Кристофера Нолана «Тёмный рыцарь». Это всё же Бэтмен!
Давайте сыграем!
При подготовке вы хорошо поработали с телефоном. Интервью в офисе этим утром проходили занятно. После общего обеда сотрудник отдела кадров сел за стол напротив вас. Он спросил: «Какую зарплату вы бы хотели?».
Что вам делать? Что же вам делать?!
Что бы вы ни делали, не называйте ему конкретную цифру. Как только у него появится цифра, он сможет задать тон при продолжении переговоров. Эта цифра будет потолком — самое высокое предложение, которое вы сможете получить на этом месте. Но, скорее всего, вы получите меньше.
Или, возможно, он попробует другой подход, чтобы подтолкнуть вас назвать цифру: «Какая зарплата у вас сейчас?».
Этот вопрос звучит вполне резонно. Разве не надо отвечать на этот вопрос?
Заключаем договор на создание технического задания
Этот топик про более редкую ситуацию, когда перед собственно проектом нужно сделать ТЗ, а это большая и серьезная работа. На нее нужен договор и цена.
Multiple dispatch в C#
На этот раз я бы хотел показать позитивную сторону, где динамическая диспетчеризация позволяет упростить код, оставаясь при этом строго-типизированным.
В этом посте мы узнаем:
- возможные варианты реализации шаблона множественная диспетчеризация (multiple/double dispatch & co.)
- как
избавиться отреализовать Exception Handling Block из Enterprise Library за пару минут. И, конечно же, упростить policy-based модель обработки ошибок - dynamic – эффективнее Вашего кода
Content Delivery Network от Akamai стал доступен пользователям Azure
Как и было анонсировано на На AzureCon в 2015 году, Content Delivery Network от Akamai стал доступен пользователям Azure! Теперь клиенты Microsoft могут использовать инфраструктуру Akamai, выбрав соответствующий тарифный план при создании нового CDN-ресурса:
Yandex Translate для Visual Studio Code
- Нет асинхронности. Знаю что есть nvim — но он работает не так быстро и не так гладко
- Сложность написания плагинов. Спорный конечно вопрос для разных гуру — но честно говоря так много «каши», не хватает модульности и какой то структурности из уже реализованных «велосипедов»
- Когда слишком много плагинов vim стартует — нужно быть честным, довольно долго и это напрягает
Пользуюсь так же по основному своему хобби — Android Studio. Очень прожорлив этот IDE к ресурсам системы, процессор иногда сходит с ума обрабатывая очередной цикл gradle assembleDebug.
Visual Studio Code испытывал скептически. Первое что удивило скорость запуска вместе с большой структурой проекта. Моментальный поиск по файлам и множество плагинов, отличный менеджер плагинов похожий на Sublime. Минимальная загрузка процессора.
Давно в Android Studio не хватало одной полезной штуки — перевод ресурсов strings.xml под другие языки. Делать раньше это было весьма неудобно:
- Выделить текст
- Скопировать
- Перейти в любой онлайн переводчик
- Вставить текст
- Выбрать текущий язык перевода
- Выбрать в какой язык перевести
- Скопировать перевод
- Открыть результирующий strings.xml
- Вставить перевод
Чего хотелось — одной комбинацией клавиш получить моментальный результат.
Краткая история Биткоин-Блокчейн для чайников. Сказка для взрослых
Привет Хабр, сегодня воскресенье, а значит можно нам немного расслабиться, и почитать мой первый пост, мою сказку для взрослых о том как появилась система биткоин, можно сказать почти от очевидца. Тем более, что меня очень часто спрашивают почему же мне не нравится биткоин и я не хочу участвовать в общем ванильном пиар-марафоне блокчейна.
И так.
Был такой шутливый клевый парень, звали его Стив. Стив придумал клевый компьютер – красивый и беленький. По своей сути он ничем не отличался от компьютера другого клевого парня по имени Билл, но был красивый и беленький.
Как и многих других хороших людей, весьма быстро Стива выпилили из собственной компании и отправили в забвение делать мультики.
Делал себе мультики Стив делал, и тут ему пришло в голову, что весьма скоро компьютеры превратятся в мобильники-дебильники и станут они называться смартфонами. Взял Стив пару единиц денежного измерения в миллиардах, пришел к четырем богатырям контента Соне, Универсалу и Эми и Варнеру, и сказал «Дяди – возьмите мои несчастные деньги и дайте мне все права на музыку да фильмы, на весь мир конечно.». Раздались грустные голоса – а как же монополия, на что Стив весьма веско заметил «Где несколько единиц, а где монополия, братьи мои? Во-первых, мои телефончики будут белые и очень-очень красивые, а соответственно безгрешные. Во-вторых, несколько единиц!!» Сказано – сделано. Как говорится так и вышло. И появился некий онлайн магазин музыки и фильмов, который совершенно внезапно работал лишь с беленькими и очень-очень красивыми телефонами, и внезапно только у этого магазина и оказались права на контент на весь мир. Нет, понятно, дабы публика не возопила, каким-то прямо скажем почти калекам тоже доставались права, но несколько урезанные, например, на диски группы Ласковый Май для распространения исключительно в Мозамбике беременным мужчинам старше 60ти.
Экспериментальная функция отладки .NET Core в Visual Studio Code
- Поддерживается только новая ознакомительная версия набора инструментов .NET Core CLI; поддержка не распространяется на текущие функции DNX (подробнее об изменениях — в этой публикации блога разработчиков ASP.NET с вопросами и ответами).
- Функция IntelliSense VS Code пока не поддерживает инструменты .NET CLI. Поэтому при отладке проектов CLI IntelliSense будет недоступен.
Этот первый выпуск поддерживает точки останова, пошаговое выполнение, отслеживание переменных и стеки вызовов.
Однако, .NET Core и функции отладки находятся на ранних этапах разработки, поэтому в VS Code отсутствует ряд возможностей, привычных для пользователей IDE Visual Studio. Вот некоторые особенности редактора:
Информация
- В рейтинге
- Не участвует
- Откуда
- Киев, Киевская обл., Украина
- Дата рождения
- Зарегистрирован
- Активность