IT Leaper
191 subscribers
188 photos
7 videos
19 files
133 links
Backend(asp.net)/Микрокомпьютеры/боты и многое другое
Администраторы не несут ответственность за ваши действия!
Весь материал предоставлено в ОЗНАКОМИТЕЛЬНЫХ целях!

Ссылка на каналhttps://t.me/Mempackk
Ссылка на наш чат https://t.me/+PJqt1gS96_ZmZDdi
Download Telegram
Что ж, начинаю устанавливать на хост)
👍2
НАКОНЕЦ ТО ЭТОТ ЧАС НАСТАЛ

I use arch btw
CLR via c#.zip
2 MB
Детальный разбор первой главы книги clr via c#. Но некоторую инфу в конце я посчитал что учитывать - не стоит. Может кому-то будет полезно)
This media is not supported in your browser
VIEW IN TELEGRAM
Итак, реализовал самый простой механизм аутентификации в аспнете. Когда пользователь регистрируется, его данные(хешированный пароль и имя) записывается в список, который хранится в классе UserRepository, другими словами имитация работы с бд(мок).

А при успешном логине, пользователь получает доступ к определённому ресурсу /courses/{id}. В данном случае мы проверяем существует ли пользователь с таким именем и совпадает ли хешированый пароль с тем, что хранитсяя в списке.

Как определяется является ли пользователь аутентифицированным?


При успешном прохождении /login пользователю через куки выдаётся jwt токен, который содержит некоторые данные о алгоритме + клеймы(данные пользователя например айди). Если (к примеру /courses/1) просит доказать что пользователь авторизован(RequireAuthorization), то берётся специальный токен и проверяется всё ли нормально. Если да - даётся "курс" в теле json-ответа , нет- выдаёт 401 Unauthorized. Вообще можно настроить этот процесс как угодно, но пока реализовал лишь основное
Аутентификация и авторизация в asp.net core

Что это такое?
Аутентификация — это процесс установления подлинности субъекта (пользователя, устройства, системы) путём проверки предъявленного фактора (например, пароля, токена или сертификата) против зарегистрированных данных. Она не доказывает, кто ты, а только подтверждает, что ты обладаешь чем-то, что даёт тебе доступ.
А вот к каким именно ресурсам вы имеете доступ - это решает авторизация.

Аутентификация
В asp.net есть несколько схем аутентификации каждая из которых определяет способ проверки и извлечения личности пользователя из запроса. Некоторые из них:
cookie-based - хранит ClaimsPrincipal между запросами в куках

Jwt Bearer - в 1 секции сохраняются данные о алгоритме, во 2 - данные о полезной нагрузке или клеймах(данные о пользователе), в 3 - подпись, которая хранит подпись(что бы нельзя было что-то изменить через браузер)

OAuth - используются посторонние провайдеры такие как Google, Microsoft, OpenID для получения токена(jwt) с помощью которого пользователь идентифицируется и установкой его в куки.
Все данные передаются в зашифрованном виде.

Авторизация

Policy-based - создаются политики, которые указываются на ендпоинтах
Role-based - используется метод AddRequirements(IAuthorizationRequirement ar) для добавлений кастомных требований и для кастомной обработки используется AuthorizationHandler<T> от которого можно наследоватся и написать свою проверку переопределив метод HandleRequirementAsync. Внедрив зависимость, данный хендлер будет также проверять является пользователь авторизирован

На общею картину можно посмотреть в моём проекте на гитхабе
🔥1
Всем привет, ну что ж, на этой неделе я собрал небольшой проект, правда до конца он не доработан. В этот раз я обратил внимание на aspire.net, grpc, ef core(postgresql) да и вообще на микросервисную архитектуру.

Данная архитектура мне сначала казалась "ненормальной", потому что уже слишком привык к монолиту, но всё-таки она показалась мне отличной. Да сложно её поддерживать, да когда надо добавить сервис приходится заморачиватся, но всё стоит на своём месте: бери и поддерживай тот или иной модуль, который тебе надо

А проект можете как всегда посмотреть вот тут
🔥1
Всем привет, мда, долго меня не было. Всё это время много что делал, но в основном игрался с многопоточностью, хттпклиентом, ну и blazor. По поводу blazor(та ещё з*лупа), обновлю прошлый проект, но он будет не идеальный
Ну я тут только похлопаю майкрософту и asmi.dll. Браво, Ге-ни-ально 👍
Самые страшные ошибки - это булевые(логические)

Представьте, вы пишете большую программу и замечаете что она ведёт себя в одном месте не так как хотелось, но позже это перерастает в большой баг из-за которого всё ломается.

Я столкнулся с такой ситуацией и потратил 2 дня для того чтобы эмулировать проблемный процесс в тестовом проекте и понять где ошибка. В итоге я просто заметил что в одном условии я просто проверял одну переменную на null и если да, то пихал эту переменную дальше в процесс 👍

По этому, чтобы не просрать до хрена времени, лучше пройдитесь по критическим блоком кода и убедитесь, что все условия проверяют то что вам нужно и делают то, что нужно. После этого если не решилась проблема, эмулируйте поведение программы в тестовом проекте, а дальше просто дёргайте за ниточки. Так же можете кидать ии на проверку кода спрашивая где в коде могут быть проблемы, НО НЕ ПРОСИТЕ ЕГО НАПИСАТЬ ВСЮ ПРОГРАММУ С НУЛЯ иначе плохо будет только вам от этого
1
Всем привет, надолго ушёл и вас оставил без информации, мои извинения. Что я делал всё это время? Возможно тут подойдёт одно слово - Reverse

Решил углубится в эту тему по глубже. Помните я выставлял заметки о первой главе книги clr via c#? Так вот, знания о pe файлах, которые я приобрёл из этой прекрасной книги пригодились и с уверенностью могу сказать что если я не прочитал ту главу, я бы сейчас сошёл с ума окончательно от количества инфы.

Итак, с чего я начал? Я изначально думал что для этого мне надо будет использовать чистый С/С++, но нет, оказывается в С# предоставляются мощные инструменты для провидения анализа pe файла. Что надо было вспомнить с плюсов, так это указатели. Раньше давно я изучал с++ и мучился с ними, но теперь я более чем разобрался.

Я понимаю что многие даже не дочитают до этой строчки, так что предлагаю более практически подойти к этой теме. Чуть позже что-то опубликую)
👍1
IT Leaper
END betatest v1.apk
Решил по пользоваться прогой и обнаружил что зашифровать через свои ключи нельзя. По этому выкатил обнову. Баг был исправлен в первый же день его обнаружения, но код приложения - ужасный

Для того чтобы обновить прогу, удалите её сначала
Скачайте обнову⬇️
Это был пиздец. С новым годом, друзья
🔥5🌚1