public bool CheckSecurity()
 {
     if (Username == null)
     {
         LoginRequired?.Invoke(this, new LoginEventArg());
         //wait logic here
     }
     return(CheckAccess());
 }
예제 #2
0
        public void Logout()
        {
            if (!this.Server.IsConnected)
            {
                return;
            }

            this.Server.Disconnect(10000, true);

            ClearStoredToken();

            // Сообщаем о том что вновнь нужен логин

            LoginRequired?.Invoke(this, EventArgs.Empty);
        }
예제 #3
0
        /// <summary>
        /// Подключается к серверу с использованием токена аутентификации.
        /// </summary>
        /// <param name="host"></param>
        /// <param name="port"></param>
        /// <param name="token"></param>
        /// <param name="acceptSsl"></param>
        /// <returns></returns>
        public async Task ConnectToken(string connectionUri, string token)
        {
            var loginInfo = new Lers.Networking.TokenAuthenticationInfo(token);

            try
            {
                var uri = new Uri(connectionUri);
                await this.Server.ConnectAsync(uri, null, loginInfo, CancellationToken.None);
            }
            catch (Lers.Networking.AuthorizationFailedException)
            {
                // Произошла ошибка аутентификации. Нужно очистить токен и сообщить что требуется логин.

                ClearStoredToken();

                LoginRequired?.Invoke(this, EventArgs.Empty);
            }
        }