예제 #1
0
        private static async Task AssertDoesGetAccessTokenUsingRefreshTokenCookie(IJsonServiceClient client)
        {
            var authResponse = await client.PostAsync(new Authenticate {
                provider = "credentials",
                UserName = "******",
                Password = "******",
            });

            var initialAccessToken  = client.GetTokenCookie();
            var initialRefreshToken = client.GetRefreshTokenCookie();

            Assert.That(initialAccessToken, Is.Not.Null);
            Assert.That(initialRefreshToken, Is.Not.Null);

            var request = new Secured {
                Name = "test"
            };
            var response = await client.SendAsync(request);

            Assert.That(response.Result, Is.EqualTo(request.Name));

            client.Post(new InvalidateLastAccessToken());
            // JwtAuthProvider.PrintDump(initialAccessToken);
            // JwtAuthProvider.PrintDump(initialRefreshToken);

            response = await client.SendAsync(request);

            Assert.That(response.Result, Is.EqualTo(request.Name));
            var latestAccessToken = client.GetTokenCookie();

            Assert.That(latestAccessToken, Is.Not.EqualTo(initialAccessToken));
        }
예제 #2
0
        private async Task SetProfile()
        {
            UpdateProfileProps(await _serviceClient.PostAsync(new SetProfile
            {
                AboutMe     = AboutMe,
                DisplayName = DisplayName
            }));

            await _hub.UpdateMyDisplayName(DisplayName);

            ResetEditMode();
        }
예제 #3
0
		/// <summary>
		///     Authenticates the user.
		/// </summary>
		/// <param name="username"> The user's username. </param>
		/// <param name="password"> The user's password. </param>
		/// <returns> The authenticated user. </returns>
		public async Task<UserModel> LoginUser(string username, string password)
		{
			var loginModel = new LoginModel()
			{
				Username = username,
				Password = password
			};
			var result = await _jsonClient.PostAsync<UserModel>("/api/account/login", loginModel);

			// set bearer token for future requests
			_jsonClient.BearerToken = result.BearerToken;

            return result;
		}
예제 #4
0
        public SettingsViewModel(IJsonServiceClient serviceClient)
        {
            ChatSettings = new UserChatSettings();

            LoginAuditCollection = new ObservableCollection <LoginAuditViewModel>();

            ContextMenuCommand = ReactiveCommand.CreateFromTask(async() =>
            {
                IsContextMenu = !IsContextMenu;
                ContextMenuSettingsActiveEvent?.Invoke(IsContextMenu);
            });

            OpenSettingsCommand = ReactiveCommand.CreateFromTask(async() =>
            {
                IsOpened = !IsOpened;
                CloseContextMenu();
                GetSettingsCommand.Execute(null);
                OpenSettingsActiveEvent?.Invoke(IsOpened);
            });

            GetSettingsCommand = ReactiveCommand.CreateFromTask(async() =>
            {
                SetSelectedMenuItem(SelectedMenuItem.Settings);
                var settingsUser = await serviceClient.GetAsync(new GetMySettings());
                if (settingsUser.SendingMessageByEnterKey)
                {
                    TypeEnter = settingsUser.SendingMessageByEnterKey;
                    TypeEnterEvent?.Invoke(TypeEnter);
                }
            });

            SaveSettingsCommand = ReactiveCommand.CreateFromTask(async() =>
            {
                var settingsUser = await serviceClient.PostAsync(new SetSettings {
                    SendingMessageByEnterKey = TypeEnter
                });
                ChatSettings = settingsUser;
            });

            MorePointerPressedCommand = ReactiveCommand.Create <object>(obj => { IsContextMenu = false; });

            GetHistoryLoginAuditCommand = ReactiveCommand.CreateFromTask(async() =>
            {
                SetSelectedMenuItem(SelectedMenuItem.Audit);
                LoginAuditCollection.Clear();
                LoginHistoryCollection = await serviceClient.GetAsync(new GetLoginAudit());
                foreach (var item in LoginHistoryCollection.History.Take(100))
                {
                    LoginAuditView = new LoginAuditViewModel
                    {
                        Id                = item.Id,
                        IpAddress         = item.IpAddress,
                        OperatingSystem   = item.OperatingSystem,
                        NameVersionClient = item.NameVersionClient,
                        DateOfEntry       = item.DateOfEntry.Date == DateTime.Now.Date
                            ? $"{item.DateOfEntry:HH:mm}"
                            : $"{item.DateOfEntry:dd.MM.yyyy HH:mm}",
                        IsActive = item.SessionId == LoginHistoryCollection.UniqueSessionUser ? "Активный" : ""
                    };
                    LoginAuditCollection.Add(LoginAuditView);
                }
            });
        }