/// <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); }
//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); }
public static string[] СписокДоменов() { var configuration = new Configuration.ConfigurationClient(DefaultBinding, new EndpointAddress(string.Format(RosService.Client.DefaultEndpointAddress, "Configuration"))); return(configuration.СписокДоменов()); }