Привет, живу в ЮВА, регистрировался в PayPal, на российские документы, деньги вывожу на карту иностранного банка.... PayPal не блокирует россиян, PayPal не работает с россиянами живущими в РФ
спасибо, надо будет попробовать. Есть PayPal, Pioneer, есть авторизованный аккаунт в местном крипто обменнике (не P2P, так что)могу выводить в местную валюту, но у моих клиентов из РФ, только рубли и у некоторых крипта, так что можно будет попробовать omnipay, если это конечно не скам....
Если бы сервер был на ASP.NET, то можно было бы сделать чат на SignalR, это обертка над веб-сокетами и не только над ними....А клиентская часть там на javascript. Вот плейлист с демонстрацией проекта с чатом. Так что стек ASP.NET+SignalR+React, в таком случае подойдет.
Привет, а в чем проблема то? Не очень понимаю вопрос....Если у вас Blazor Server, то значит все происходит на сервере, то есть SSR, и тогда вполне подойдет встроенная в ASP.NET - .NET Identity, ну или собственная реализация на основе .NET Identity, с использованием JWT токенов. Если сильно напрячься, то можно сделать независимый сервер идентификации Duende Identity Server, тогда можно будет все настроить и для Blazor-Wasm. Вот в этом плейлисте кое что о защите доступа в ASP.NET, где показан проект с использованием ASP.NET MVC и WEB API.NET, но вместо MVC может быть проект на Blazor-Server.
В принципе в первом ответе вам уже все подробно расписали, вот только тема защиты доступа к ресурсам API, для вашего случая, когда есть и мобильное приложение и видимо SSR MVC.NET Core, будет проблемной. В последнем .NET 8, уже заявлено какое то универсальное решение для авторизации и аутентификации, и оно отличается от встроенной в .NET Identity, и там еще надо разибираться. Но может быть вас устроит независимый сервис авторизации Duende Identity Server с JWT токенами? Вот в этом плейлисте кое что о таком решении....
Nik Faraday, видел решение проблемы сохранения файлов изображений в облаках, как BLOB формат, где загрузка изображений обеспечивается интерфейсом самого облачного сервиса (Azure например), а далее такая ссылка на облако хранится в базе данных для API.
Однако это не самое удобное решение,
и есть также возможность настройки сохранения файлов изображений,
из интерфейса веб приложения,
с последующей передачей этих данных в API.
Но там нужно будет добавлять в представление FormFile,
а также предусмотреть еще один формат для передачи данных,
это MultipartFormData.
Вот в этом видео,
пример такого решения....
Однако оба таких варианта (Облако и хранение на собственном сервере),
были реализованы без выделения такой функциональности в отдельный сервис. Посмотрите как это работает в упрощенном виде,
а потом сделайте это более сложным способом...
Веб API, может только принимать запросы по HTTP, и передавать данные по запросу, в том числе и статические файлы, для того что бы можно было получить такие файлы из любого другого приложения, включая клиент на MVC или Razor pages или другой WEB API, внешние приложения должны сформировать HTTP заросы, и при обработке такого запроса в конвейере исходного API, требуется также строка app.UseStaticFiles(); внутри этого проекта, а не во внешних приложениях.....Смотрите видео о том как работает REST API в .NET
Может я ошибаюсь, но что бы не мучаться с кастомной реализацией Авторизацией и Аутентификацией пользователей в ASP..NET, можно взять за основу ASP.NET Identity, только там все представления и логика не в MVC, а на Razor Pages, без контроллеров но с хендлерами, и там уже много чего есть готового....Вот в этом плейлисте пример такой реализации....
Проверьте есть ли у вас связь между View и методом типа HTTPGet - public async Task AddRole(Guid id, CancellationToken ct), то есть сначала создаете метод, потом через правую кнопку мыши при наведении на название метода, выбираете создать View, тогда при его создании они будут связаны в проекте в Visual Studio
.NET, SignalR, вот в этом видео об этом, с демонстрацией работы проектов, где есть общение в приватных сообщениях и в группах, или можно сказать комнатах...
Используйте DTO . Если вы будете использовать передачу по HTTP данных из API, то совершенно не важно что и как используется в бекенде на уровне API, Entity Framework, Dapper или что то иное...,, вот в этом плейлисте есть некоторые материалы по архитектуре WEB.API на .NET 7, включая и использование DTO, для формирования ответов в формате json или ином формате....
В этом видео, коротко будет рассмотрена настройка генерации и обновления Токенов Доступа и Токенов обновления, для API на .NET с клиентом ASP.NET MVC, включая вопросы защиты доступа к ресурсам API и алгоритма отслеживания цепочек токенов.
В первом комменте, по сути вам уже ответили на вопрос.
Могу лишь добавить что,
1. На сервере в консольном приложении, нужно создать WebApplication,
var builder = WebApplication.CreateBuilder(args);, и вы это сделали
2. Далее нужно создать в контейнере сервис builder.Services.AddSignalR();,
у вас также это сделано.
3. Далее, нужно добавить компонент в конвейер обработки запросов,
app.MapHub("/chatHub"); этого у вас нет
4. Далее запустить app.Run(); это вы сделали.
Но кроме того, нужно также настраивать и клиентскую часть.
Пример настроек серверной части и браузерной клиентской части на JS, вот в этом плейлисте
EboLiK, Василий Банников уже ответил на этот вопрос, но есть подробное руководство по веб API.Net и клиенте на ASP.NET MVC, где в том числе, рассматривается вопрос автоматизации загрузки и хранения файлов изображений на локальном сервере с передачей в базу данных ссылок на такие файлы, вот вводное видео. И эта схема не совсем то что нужно для проекта на WPF, однако эти же подходы к решению проблемы, можно использовать и для монолитного приложения на WPF.
Согласен с тем что, особых проблем, в установке нового соединения по тайм ауту вообще то и нет. Но кроме этого хотелось бы добавить, что SIgnalR это обертка над тремя типами соединений Long Polling, SSE и WebSockets, не каждый из них действительно поддерживает непрерывное соединение, подробнее об этом вот в этом видео. И можно конечно жестко настроить что соединение может быть установлено через WebSocket, и задать произвольное время для такого соединения, но тогда не все веб клиенты смогут получать обновления данных, так как может быть такая ситуация, что некоторые из клиентов используют веб-браузеры без поддержки веб сокетов.