private void ValidateSessionsAsync()
        {
            ThreadPool.QueueUserWorkItem(async(object o) =>
            {
                ITerminalServicesManager manager = new TerminalServicesManager();
                using (ITerminalServer server = manager.GetLocalServer())
                {
                    server.Open();

                    var localSessions = server.GetSessions().Where(s => s.SessionId > 0 && (s.ConnectionState == Cassia.ConnectionState.Active));
                    var messages      = await _msgReader.GetAllMessages();

                    if (messages.Count(m => m.Command.Type == WinGuard.Domain.Enumaretions.ClientCommandType.LOGOUT) > 0 &&
                        localSessions.Any(s => messages.Any(m => m.Command.ClientIdentifier == s.SessionId.ToString())))
                    {
                        foreach (var session in localSessions.Where(s => messages.Any(m => m.Command.ClientIdentifier == s.SessionId.ToString())))
                        {
                            session.Logoff();
                        }
                        return;
                    }
                    foreach (ITerminalServicesSession session in localSessions)
                    {
                        await _authService.Login(_encryptService.EncryptMessage(session.SessionId.ToString()),
                                                 _encryptService.EncryptMessage(session.UserName));
                    }
                }
            });
        }
示例#2
0
        public void TestEcryptDecrypt()
        {
            var example   = "Hello World";
            var encrypted = service.EncryptMessage(example);
            var decrypted = service.DecryptMessage(encrypted);

            Assert.Equal(example, decrypted);
        }
示例#3
0
        public async Task SendSms(string messageText)
        {
            try
            {
                // Need to Encrypt the message using recipients Public Key and pass the result to Sms
                var encryptedMessage = await encryptionService.EncryptMessage(messageText, _selectedContact.PublicKey);

                var message = new SmsMessage {
                    Body = encryptedMessage.ToString()
                };

                await Sms.ComposeAsync(message);
            }
            catch (FeatureNotSupportedException)
            {
                // TODO: Sms is not supported on this device. Display Error
            }
            catch (Exception)
            {
                // TODO: Other error has occurred. Display Error
            }
        }