예제 #1
0
        /// <summary>
        /// Обновляется значение 'ВремяСессии'
        /// </summary>
        public static void ПродлитьСессиюПользователя(TimeSpan ВремяСесси)
        {
            if (!IsAuthorization)
            {
                return;
            }

            var configuration = new Configuration.ConfigurationClient(DefaultBinding, new EndpointAddress(string.Format(RosService.Client.DefaultEndpointAddress, "Configuration")));

            configuration.АвторизацияПродлитьСессиюПользователя(User.id_node, ВремяСесси, Domain);
        }
예제 #2
0
        //http://itrf.ru/росинфотех/техподдержка
        //tcp://itrf.ru/росинфотех/техподдержка
        public static bool Authorization(string UserName, string Password, bool ЗаписатьВЖурнал)
        {
            if (UserName == null)
            {
                return(false);
            }
            else if (string.IsNullOrEmpty(UserName.Trim()))
            {
                throw new Exception("Заполните поле имя пользователя");
            }

            try
            {
                var token = Regex.Match(UserName, @"^(?<DOMAIN>(.+?))[\\/](?<USER>(.+?))(@(?<HOST>(.+)))?$", RegexOptions.Compiled | RegexOptions.Singleline);
                Client.Domain   = token.Groups["DOMAIN"].Value.ToLower();
                Client.UserName = token.Groups["USER"].Value;
                Client.Password = Password;
                if (!string.IsNullOrEmpty(token.Groups["HOST"].Value))
                {
                    //var host = token.Groups["HOST"].Value.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                    //if (!string.IsNullOrEmpty(host.ElementAtOrDefault(1)))
                    //    DefaultPort = host.ElementAtOrDefault(1);

                    Client.Host = token.Groups["HOST"].Value;
                }
                if (string.IsNullOrEmpty(Client.UserName))
                {
                    throw new ArgumentException();
                }
            }
            catch (ArgumentException)
            {
                throw new Exception(@"Не правильно указано имя пользователя, используйте формат 'компания\Пользователь'.");
            }

            //проверить существует ли пользователь
            try
            {
                var configuration = new Configuration.ConfigurationClient(DefaultBinding, new EndpointAddress(string.Format(RosService.Client.DefaultEndpointAddress, "Configuration")));
                var user          = configuration.Авторизация(Client.UserName, Client.Password, ЗаписатьВЖурнал, Client.Domain);


                //var token = Host.Split(':');
                //var url = token.ElementAtOrDefault(0);
                //var port = token.ElementAtOrDefault(1);
                //if (string.IsNullOrEmpty(port))
                //    port = DefaultPort;

                //var client = new FactoryWrapper<IConfigurationChannel>(
                //    new BasicHttpBinding(),
                //    new EndpointAddress(string.Format("http://" + url + ":" + port + GetPath() + @"/{0}/basic", "Configuration")));
                //var user = client.Execute(proxy =>
                //{
                //    return proxy.Авторизация(Client.UserName, Client.Password, false, Client.Domain);
                //});

                Client.UserName                    = user.Логин;
                Client.User.id_node                = user.id_node;
                Client.User.Тип                    = user.Тип;
                Client.User.оли                    = user.оли;
                Client.User.ГруппаРаздел           = user.ГруппаРаздел;
                Client.User.Группа                 = user.Группа;
                Client.User.Права.НаборПравДоступа = user.Права;
            }
            catch (NullReferenceException)
            {
                throw new Exception("Не верно указано имя пользователя или пароль.");
            }
            catch (EndpointNotFoundException)
            {
                throw new Exception(string.Format("Не удалось установить связь с сервером ({0}). Проверьте подключение к Интернет.", host));
            }
            catch (TimeoutException)
            {
                throw new Exception(string.Format("Не удалось установить связь с сервером ({0}). Проверьте подключение к Интернет.", host));
            }
            Client.IsAuthorization = true;
            return(true);
        }
예제 #3
0
        public static string[] СписокДоменов()
        {
            var configuration = new Configuration.ConfigurationClient(DefaultBinding, new EndpointAddress(string.Format(RosService.Client.DefaultEndpointAddress, "Configuration")));

            return(configuration.СписокДоменов());
        }