Hello I'm looking solution C# .Net Core 3+ WPF windows application and Asp .Net Core(with EF) server communication,
Working idea is that authorization is from WPF application with email and password and sends data to server, then server try to authorize if success server sends data to client, if user changes login data from web(email or password), then server should stop communication with wpf application and client must reauthorize, also user has ability to disconnect wpf application from web.
So far I have few ideas:
- Use GRPC with token(tokens will be used to disconnect client), problem is it has restricted data types which will cause additional problem solving. Also WPF application would need to ping to server for reporting it is online, problem is if 10k user and more will use simultaneously, server will struggle to respond.
- Use MQTT, it has broker which releases server workload for pinging server just need to report to broker that user data is invalid and broker will disconnect user, also it uses TCP, problem is its too complex to fit requirements. It lacks username and password authorization, since it mainly focuses on certificate authorization.
- Use WCF, from people experience with it seems it easy to scale and use, problem is only works with .Net Framework.
Idea communication between client and server idea is to use JWT, since client wont need to send his login just only token, if from web data is changed then token is also changed, that means wpf and server token will not be same and user will be forced to reauthorize.
Unless there is better and easier solution to achieve needed requirements, I ready to listen.