Задать вопрос
  • Как удалить сессию из БД после истечения срока?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    В ASP.NET Core есть стандартный механизм сеансов (ISession): https://learn.microsoft.com/aspnet/core/fundamenta...
    Работает он на базе распределенного кэша (IDistributedCache), который штатными средствами можно базировать на MS SQL и на Redis (и, возможно, есть дополнительные сторонние пакеты для базирования на других СУБД,). Идентифкатор сессии хранится в куки (настраеваемой), по умолчанию - HTTP-only (но это настраивается).
    Механизм устаревания сеансов там есть, параметры тоже можно настроить.
    Кароче, если нет причин обязательно делать свой велосипед (типа, для учебной задачи) можно использовать этот стандартный механизм.
    Правда идея использовать этот механизм именно для авторизации у меня вызывает некоторые неясные опасения: он, вообще-то, не для того сделан. А именно для авторизации (плюс аутентифкация) в ASP.NET Core тоже есть штатное решение (Identity и политики авторизации). И вообще, аутентифкация/авторизация - это такое место, где легко накосячить, а потому лучше там обходиться без своих велосипедов.
    Ответ написан
    3 комментария
  • Как определить, что пользователь использует официальную версию клиента программы?

    @rPman
    Только разместив ключевую часть алгоритма его работы на своем сервере, требуя доступ приложению к нему по сети, можно получить какие то гарантии, в пределах стоимости ревносинжегеринга и воспроизведения ее пользователем самостоятельно.

    Вырожденный и достаточно простой способ реализации - запуск всего приложения на своем сервере с предоставлением удаленного доступа (например по ms rdp) и тщательной настройкой рабочего места пользователя на сервере в режиме киоск (что бы нельзя было получить доступ к файлам программы для их копирования).

    Все иные простые способы будет взломаны, как только это кому либо понадобится достаточно сильно.
    Ответ написан
    Комментировать
  • Какие есть способы создания, обновления отдельных changelog.md для нескольких проектов .csproj в едином репозитории?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    А разве флаг --proj-name не для этого в Versionize добавлен?

    Usage: versionize [command] [options]
    
    Options:
    ...
      --proj-name    Name of a project defined in the configuration file (for monorepos)


    UPD: справедливости ради, в README доку для него добавили месяц назад (на текущий момент), поэтому в самом туле его может не быть еще
    Ответ написан
    3 комментария
  • В чём проявляется зависимость c++ от железа и касается ли это Rust?

    15432
    @15432
    Системный программист ^_^
    Java компилируется в промежуточный код виртуальной машины Java, C++ и Rust компилируются в машинный код., исполняемый на процессоре. Разные процессоры имеют разный формат машинного кода, потому созданная для x86 программа не запустится на ARM.
    Ответ написан
    Комментировать
  • Как обезопасить программу С# от взлома?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    //COPY01 EXEC PGM=IEBGENER
    Что за каша? Что такого ценного в "других программах" и от чего их надо защищать? Сама программа обычно является обьектом защиты только если это игра - то есть работа программы самой по себе (среди не-игр это редко). Обычно не-игра защищается тогда, когда она производит что-то ценное.

    Вопрос - что ценного в ваших программах? Кому они нужны, кто будет их ломать?
    Ответ написан
    Комментировать
  • Есть ли программа которая уведомляет о потовом скачивании файлов с сервера?

    @Drno
    Ну мне приходит на ум только 2 варианта. какой то антивирусный продукт \ продукт контура безопастности.
    Либо мониторинг типа Zabbix + какой то самописный шаблон
    Ответ написан
    1 комментарий
  • #Define TRUE FALSE. Что произойдёт?

    @OtryvnoyKalendar
    Если ты сам не используешь эти макросы в коде, то ничего не произойдёт. Если ты хочешь повеселиться, то попробуй в какой-нибудь работающий проект перед включением заголовочных файлов поставить этот дефайн, может что-то сломается...
    Ответ написан
    Комментировать
  • #Define TRUE FALSE. Что произойдёт?

    GavriKos
    @GavriKos
    1. Читаешь что такое define и когда он срабатывает
    2. Пробуешь сам в онлайн-компиляторе.

    В таком виде - ничего не произойдет, true-false с маленькой буквы должны быть. Если очень кратко что произойдет - все true в коде заменятся на false.
    Ответ написан
    Комментировать
  • Существуют ли технологии блокировки записи с экрана в веб-технологиях?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Даже на закрытых плеерах с DRM эта защита не спасает. Ничто не помешает переткнуть кабель из монитора в карту видеозахвата. Или тупо поставить перед монитором камеру.
    Ответ написан
    Комментировать
  • Существуют ли технологии блокировки записи с экрана в веб-технологиях?

    @Drno
    Ну скорее всего никак. Кому надо тот всё равно запишет, так или иначе.
    Например я могу запустить ОС в вриртуалке, открыть сайт, а видео записывать средствами управления виртуализацией.. например в Vbox такое есть)
    Ответ написан
    Комментировать
  • Что делать, если твой логотип кто-то украл и зарегистрировал?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    При подаче искового заявления в суд, Вам необходимо будет предоставить доказательства неправомерных действий ответчика.
    1. Нужно предъявить доказательства того, что логотип принадлежит Вам. Это может быть регистрация товарного знака на Ваше имя. Или доказательства того, что Вы обладаете авторскими правами на это визуальное произведение;
    2. Нужно предъявить доказательства того. что ответчик использует в коммерческой деятельности именно Ваш логотип (а не его глубокую переработку). Иначе потребуется проведение дополнительной экспертизы, которая будет устанавливать степень переработки;
    3. Нужно доказать сумму нанесённого Вам ущерба. Если Вы физлицо, то тут всё сложно.
    Ответ написан
    Комментировать
  • Как правильно списывать ИТ оборудование в компании?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    ЕМНИП, сейчас лимиты такие, что практически всё компьютерное железо можно списывать как малоценку безо всяких обоснований. Но, вообще, списанием должна заниматься бухгалтерия, а не сисадмин.
    Ответ написан
    4 комментария
  • SQLite не хочет добавлять данные, введенные пользователем в тг боте в базу данных, что делать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    INSERT INTO result(name) VALUES (ilya)
    Вы пытаетесь вставить в колонку name значение из колонки ilya. Строки должны быть в кавычках.
    Для защиты от SQL-инъекции нужно использовать плейсхолдеры
    - cur.execute(f'INSERT INTO result(name) VALUES ({data["Name"]})')
    - db.commit()
    - cur.execute(f'INSERT INTO result(name) VALUES({data['School_class']})')
    + cur.execute('INSERT INTO result(name, class) VALUES (?, ?)', (data["Name"], data['School_class']))
    Ответ написан
    Комментировать
  • Как разумно поставить себе начало в программировании (C++ и C#)?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    C++ является одним из сложных ЯП... блабла...Я осознаю, что для меня это слишком серьёзное и тяжелое начало

    Я разобрался как работает стек и как адресуется память в пятом классе без интернета и практически без документации. Была какая-то книжка по С++, которую просто перечитал раза 3-4, пока не понял смысл.

    На протяжении обучения в школе я размышлял о начале изучения языка программирования.

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


    Чувак, ты слишком много размышляешь и мало делаешь. Нет какого-то оптимизирующего волшебства, который может значительно сократить твой путь. Ты должен писать код. Много кода.
    А ты занимаешься фигней типа анализируешь трудоустройство еще даже не поняв, а можешь ли ты вообще что-то.
    Ты должен понимать, что если ты можешь написать, например, крестики нолики или морской бой - это еще не значит что ты станешь программистом и сможешь этим зарабатывать. Это просто любитель. Но ты даже этого уровня не достиг, а уже хочешь анализировать тренды и тем более подсчитывать предполагаемый заработок, до которого еще годы пути. Ты посмотри на политику в стране, никто не знает что будет через год.

    Если ты оцениваешь знания школьными мерками (типа экзамен сдал), то пора вырасти из этого статуса и переходить на оценку "я могу сделать вот это, оно будет работаь". Насколько красиво - это уже другой вопрос. Если ты можешь писать рабочий продукт, уже потом можно начинать его шлифовать и читать про красивый код.
    С нуля сложная архитектура сильно мешает, потому что не достаточно фундамента чтобы понимать почему именно вот это решение красивое а это нет.

    Если тебе интересна разработка и в будущем планируешь стать айтишником - просто бери и работай с компом. Пиши программы, сайты, поделки, настраивай что-то, интегрируй. Набирай фундамент. Интенсивность - по своему увлечению.
    В какой-то момент сможешь понять что тебе приятнее заходит, тогда может быть начнешь продвигаться уже в более узкой области, в конкретном языке, технологии. Специализация обычно начинается на уровне ну хотя бы джуниор, а не новичок/стажер.

    А про трудоустройство начинай думать, когда при прочтении описания вакансии ты считаешь, что 50-60% ты знаешь.
    Ответ написан
    12 комментариев
  • Где найти репетитора / куратора по JavaScript?

    black1277
    @black1277
    Вольный стрелок
    Вот же для этого как раз сервис и открыли https://career.habr.com/experts
    Ответ написан
    2 комментария
  • Какие роутеры выбрать для сборки сети на 20+ устройств?

    b1ora
    @b1ora
    Контакты в профиле
    1. UniFi (рекомендую, надёжно и довольно простая настройка)
    2. Omada (похож на UniFi)
    3. MikroTik (много тонких настроек)
    4. Keenetik (надёжность не знаю, но настраивать легко)

    Точки доступа должны соединиться к ядру сети (маршрутизатор или коммутатор), никаких Wireless линков между собой.
    Ответ написан
    Комментировать
  • Зачем использовать кучу если есть стек? а так же где применяются указатели и ссылки?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Проблема стека в том, что там лежат только локальные данные, которые исчезнут вместе с выходом из функции. Кроме того, обычно размер всех переменных на стеке известен во время компиляции. Некоторые языки умеют выделять на стеке массивы переменной длины, но даже не все C++ компиляторы так умеют. В самом стандарте языка c++ - таких масивов нет. Поэтому стек часто не подходит.

    Помимо стека и кучи, есть еще глобальные переменные - но там проблема в том, что все они жестко определены во время компиляции.

    Т.е. если вам нужны данные доступные вне какой-то функции, да еще их точный размер и/или количество неизвестно на этапе компиляции - вам нужно что-то кроме стека и глобальных переменных. Это и есть куча.
    Ответ написан
    4 комментария
  • Не будет ли фризов в играх с такой сборкой?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    сейчас сборка на Xeon E5 2650 v2

    Для игр важна частота процессора, что редко пересекается с зеонами.
    Intel Core i3-13100F

    Нормальный проц, но я бы под Вашу видюху лучше взял мощнее проц.
    Sapphire Radeon RX 7600

    Видюха выше среднего, нормальная, но я бы брал Nvidia.
    Ответ написан
    Комментировать
  • Не будет ли фризов в играх с такой сборкой?

    @Drno
    Видеокарта не может быть слишком "мощной"
    В плане Xeon - всё зависит от задачи и от игры. скорее всего просто ЦП слишком устарел
    Ответ написан
    Комментировать
  • Как проверять подлинность данных, отправляемых клиентом в базу данных?

    все расчёты, связанные с важными переменными происходят со стороны клиента

    Все расчеты связанные с важными переменными должны происходить на стороне сервера
    668c1b7a7dc2f372259442.png
    Ответ написан
    1 комментарий