Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/HeuristicLab.DemoClient.csproj
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/HeuristicLab.DemoClient.csproj	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/HeuristicLab.DemoClient.csproj	(revision 4695)
@@ -0,0 +1,142 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{92119B2A-37FA-444B-8C68-61114BD041F4}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.DemoClient</RootNamespace>
+    <AssemblyName>HeuristicLab.DemoClient-3.3</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile>
+    </TargetFrameworkProfile>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <CodeAnalysisLogFile>bin\Debug\HeuristicLab.DemoClient-3.3.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRuleSetDirectories>;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
+    <CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
+    <CodeAnalysisRuleDirectories>;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
+    <CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <CodeAnalysisLogFile>bin\Release\HeuristicLab.DemoClient-3.3.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRuleSetDirectories>;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
+    <CodeAnalysisRuleDirectories>;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
+    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Runtime.Serialization" />
+    <Reference Include="System.ServiceModel" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Service References\Services.DemoService\Reference.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Reference.svcmap</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="app.config">
+      <SubType>Designer</SubType>
+    </None>
+    <None Include="HeuristicLab.snk" />
+    <None Include="Service References\Services.DemoService\HeuristicLab.DemoClient.Services.DemoService.CompositeType.datasource">
+      <DependentUpon>Reference.svcmap</DependentUpon>
+    </None>
+    <None Include="Service References\Services.DemoService\Service.wsdl" />
+    <None Include="Service References\Services.DemoService\Service.xsd">
+      <SubType>Designer</SubType>
+    </None>
+    <None Include="Service References\Services.DemoService\Service1.xsd">
+      <SubType>Designer</SubType>
+    </None>
+    <None Include="Service References\Services.DemoService\Service2.xsd">
+      <SubType>Designer</SubType>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <WCFMetadata Include="Service References\" />
+  </ItemGroup>
+  <ItemGroup>
+    <WCFMetadataStorage Include="Service References\Services.DemoService\" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Service References\Services.DemoService\Service.disco" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Service References\Services.DemoService\configuration91.svcinfo" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Service References\Services.DemoService\configuration.svcinfo" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Service References\Services.DemoService\Reference.svcmap">
+      <Generator>WCF Proxy Generator</Generator>
+      <LastGenOutput>Reference.cs</LastGenOutput>
+    </None>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Program.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Program.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Program.cs	(revision 4695)
@@ -0,0 +1,68 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.ServiceModel.Security;
+using HeuristicLab.DemoClient.Services.DemoService;
+using System.Collections;
+
+
+namespace HeuristicLab.DemoClient {
+  class Program {
+    static bool CreateClient(ServiceClient client) {
+      Hashtable ht = new Hashtable();
+      string name = "TestClient_1";
+      string descr = "Testdescr_1";
+      string resGroup = "Client";
+      string groupID = client.GetGroupID("g1"); // "265677c6-5fdd-48ea-8792-71624c56bec3";
+      return client.CreateClient(name, descr, groupID, resGroup);
+    }
+
+    static bool CreateGroup(ServiceClient client) {
+      Hashtable ht = new Hashtable();
+      string name = "TestGroup_1";
+      string descr = "TestGroupdescr_1";
+      return client.CreateGroup(name, descr);
+    }
+
+
+    static void Main(string[] args) {
+      ServiceClient client = new ServiceClient();
+      client.ClientCredentials.UserName.UserName = "Alice";
+      client.ClientCredentials.UserName.Password = "YouWillNeverKnow";
+      client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
+
+      try {
+        Console.WriteLine(client.GetData(23));
+        Console.WriteLine("groupid = {0}", client.GetGroupID("g1"));
+        Console.WriteLine("Group Created = {0}", CreateGroup(client));
+        Console.WriteLine("Client Created = {0}", CreateClient(client));
+      }
+      catch (Exception e) {
+        Console.WriteLine(e.Message);
+      }
+
+      Console.ReadLine();
+
+      client.Close();
+    }
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Properties/AssemblyInfo.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Properties/AssemblyInfo.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Properties/AssemblyInfo.cs	(revision 4695)
@@ -0,0 +1,56 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.DemoClient")]
+[assembly: AssemblyDescription("A demo client to show how to use HeuristicLab services.")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2010 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("cab1c503-3235-410b-bd56-74b69889a936")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.0.0")]
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/HeuristicLab.DemoClient.Services.DemoService.CompositeType.datasource
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/HeuristicLab.DemoClient.Services.DemoService.CompositeType.datasource	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/HeuristicLab.DemoClient.Services.DemoService.CompositeType.datasource	(revision 4695)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="CompositeType" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.DemoClient.Services.DemoService.CompositeType, Service References.Services.DemoService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Reference.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Reference.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Reference.cs	(revision 4695)
@@ -0,0 +1,144 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.1
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HeuristicLab.DemoClient.Services.DemoService {
+    using System.Runtime.Serialization;
+    using System;
+    
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="CompositeType", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.DemoService")]
+    [System.SerializableAttribute()]
+    public partial class CompositeType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool BoolValueField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string StringValueField;
+        
+        [global::System.ComponentModel.BrowsableAttribute(false)]
+        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+            get {
+                return this.extensionDataField;
+            }
+            set {
+                this.extensionDataField = value;
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public bool BoolValue {
+            get {
+                return this.BoolValueField;
+            }
+            set {
+                if ((this.BoolValueField.Equals(value) != true)) {
+                    this.BoolValueField = value;
+                    this.RaisePropertyChanged("BoolValue");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string StringValue {
+            get {
+                return this.StringValueField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.StringValueField, value) != true)) {
+                    this.StringValueField = value;
+                    this.RaisePropertyChanged("StringValue");
+                }
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        protected void RaisePropertyChanged(string propertyName) {
+            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+            if ((propertyChanged != null)) {
+                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+            }
+        }
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    [System.ServiceModel.ServiceContractAttribute(ConfigurationName="Services.DemoService.IService")]
+    public interface IService {
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/GetData", ReplyAction="http://tempuri.org/IService/GetDataResponse")]
+        string GetData(int value);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/GetDataUsingDataContract", ReplyAction="http://tempuri.org/IService/GetDataUsingDataContractResponse")]
+        HeuristicLab.DemoClient.Services.DemoService.CompositeType GetDataUsingDataContract(HeuristicLab.DemoClient.Services.DemoService.CompositeType composite);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/CreateClient", ReplyAction="http://tempuri.org/IService/CreateClientResponse")]
+        bool CreateClient(string name, string descr, string groupID, string resGroup);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/CreateGroup", ReplyAction="http://tempuri.org/IService/CreateGroupResponse")]
+        bool CreateGroup(string name, string descr);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/GetGroupID", ReplyAction="http://tempuri.org/IService/GetGroupIDResponse")]
+        string GetGroupID(string name);
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    public interface IServiceChannel : HeuristicLab.DemoClient.Services.DemoService.IService, System.ServiceModel.IClientChannel {
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    public partial class ServiceClient : System.ServiceModel.ClientBase<HeuristicLab.DemoClient.Services.DemoService.IService>, HeuristicLab.DemoClient.Services.DemoService.IService {
+        
+        public ServiceClient() {
+        }
+        
+        public ServiceClient(string endpointConfigurationName) : 
+                base(endpointConfigurationName) {
+        }
+        
+        public ServiceClient(string endpointConfigurationName, string remoteAddress) : 
+                base(endpointConfigurationName, remoteAddress) {
+        }
+        
+        public ServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
+                base(endpointConfigurationName, remoteAddress) {
+        }
+        
+        public ServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
+                base(binding, remoteAddress) {
+        }
+        
+        public string GetData(int value) {
+            return base.Channel.GetData(value);
+        }
+        
+        public HeuristicLab.DemoClient.Services.DemoService.CompositeType GetDataUsingDataContract(HeuristicLab.DemoClient.Services.DemoService.CompositeType composite) {
+            return base.Channel.GetDataUsingDataContract(composite);
+        }
+        
+        public bool CreateClient(string name, string descr, string groupID, string resGroup) {
+            return base.Channel.CreateClient(name, descr, groupID, resGroup);
+        }
+        
+        public bool CreateGroup(string name, string descr) {
+            return base.Channel.CreateGroup(name, descr);
+        }
+        
+        public string GetGroupID(string name) {
+            return base.Channel.GetGroupID(name);
+        }
+    }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Reference.svcmap
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Reference.svcmap	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Reference.svcmap	(revision 4695)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ReferenceGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="eff4561a-dde1-4e8f-831b-892ae8a12489" xmlns="urn:schemas-microsoft-com:xml-wcfservicemap">
+  <ClientOptions>
+    <GenerateAsynchronousMethods>false</GenerateAsynchronousMethods>
+    <EnableDataBinding>true</EnableDataBinding>
+    <ExcludedTypes />
+    <ImportXmlTypes>false</ImportXmlTypes>
+    <GenerateInternalTypes>false</GenerateInternalTypes>
+    <GenerateMessageContracts>false</GenerateMessageContracts>
+    <NamespaceMappings />
+    <CollectionMappings />
+    <GenerateSerializableTypes>true</GenerateSerializableTypes>
+    <Serializer>Auto</Serializer>
+    <UseSerializerForFaults>true</UseSerializerForFaults>
+    <ReferenceAllAssemblies>true</ReferenceAllAssemblies>
+    <ReferencedAssemblies />
+    <ReferencedDataContractTypes />
+    <ServiceContractMappings />
+  </ClientOptions>
+  <MetadataSources>
+    <MetadataSource Address="http://localhost:34825/Service.svc" Protocol="http" SourceId="1" />
+  </MetadataSources>
+  <Metadata>
+    <MetadataFile FileName="Service.xsd" MetadataType="Schema" ID="ce4d7b3c-7aa8-4d99-93cd-3b25727443fe" SourceId="1" SourceUrl="http://localhost:34825/Service.svc?xsd=xsd2" />
+    <MetadataFile FileName="Service1.xsd" MetadataType="Schema" ID="03048674-6bd9-47c5-bb7c-526cc15db304" SourceId="1" SourceUrl="http://localhost:34825/Service.svc?xsd=xsd0" />
+    <MetadataFile FileName="Service2.xsd" MetadataType="Schema" ID="4dd58e47-d80a-42fb-9cef-d4116205ae11" SourceId="1" SourceUrl="http://localhost:34825/Service.svc?xsd=xsd1" />
+    <MetadataFile FileName="Service.wsdl" MetadataType="Wsdl" ID="ac8733fe-43de-428b-9b6f-1f4943c59a8c" SourceId="1" SourceUrl="http://localhost:34825/Service.svc?wsdl" />
+    <MetadataFile FileName="Service.disco" MetadataType="Disco" ID="89fb4033-455a-41e6-bbb6-cbc8232b2781" SourceId="1" SourceUrl="http://localhost:34825/Service.svc?disco" />
+  </Metadata>
+  <Extensions>
+    <ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
+    <ExtensionFile FileName="configuration.svcinfo" Name="configuration.svcinfo" />
+  </Extensions>
+</ReferenceGroup>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service.disco
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service.disco	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service.disco	(revision 4695)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
+  <contractRef ref="http://localhost:34825/Service.svc?wsdl" docRef="http://localhost:34825/Service.svc" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
+</discovery>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service.wsdl
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service.wsdl	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service.wsdl	(revision 4695)
@@ -0,0 +1,431 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Service" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+  <wsp:Policy wsu:Id="WSHttpBinding_IService_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <sp:SymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <wsp:Policy>
+            <sp:ProtectionToken>
+              <wsp:Policy>
+                <sp:SecureConversationToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
+                  <wsp:Policy>
+                    <sp:RequireDerivedKeys />
+                    <sp:BootstrapPolicy>
+                      <wsp:Policy>
+                        <sp:SignedParts>
+                          <sp:Body />
+                          <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing" />
+                          <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing" />
+                          <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing" />
+                          <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing" />
+                          <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing" />
+                          <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing" />
+                          <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing" />
+                        </sp:SignedParts>
+                        <sp:EncryptedParts>
+                          <sp:Body />
+                        </sp:EncryptedParts>
+                        <sp:SymmetricBinding>
+                          <wsp:Policy>
+                            <sp:ProtectionToken>
+                              <wsp:Policy>
+                                <mssp:SslContextToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient" xmlns:mssp="http://schemas.microsoft.com/ws/2005/07/securitypolicy">
+                                  <wsp:Policy>
+                                    <sp:RequireDerivedKeys />
+                                  </wsp:Policy>
+                                </mssp:SslContextToken>
+                              </wsp:Policy>
+                            </sp:ProtectionToken>
+                            <sp:AlgorithmSuite>
+                              <wsp:Policy>
+                                <sp:Basic256 />
+                              </wsp:Policy>
+                            </sp:AlgorithmSuite>
+                            <sp:Layout>
+                              <wsp:Policy>
+                                <sp:Strict />
+                              </wsp:Policy>
+                            </sp:Layout>
+                            <sp:IncludeTimestamp />
+                            <sp:EncryptSignature />
+                            <sp:OnlySignEntireHeadersAndBody />
+                          </wsp:Policy>
+                        </sp:SymmetricBinding>
+                        <sp:SignedSupportingTokens>
+                          <wsp:Policy>
+                            <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
+                              <wsp:Policy>
+                                <sp:WssUsernameToken10 />
+                              </wsp:Policy>
+                            </sp:UsernameToken>
+                          </wsp:Policy>
+                        </sp:SignedSupportingTokens>
+                        <sp:Wss11>
+                          <wsp:Policy />
+                        </sp:Wss11>
+                        <sp:Trust10>
+                          <wsp:Policy>
+                            <sp:MustSupportIssuedTokens />
+                            <sp:RequireClientEntropy />
+                            <sp:RequireServerEntropy />
+                          </wsp:Policy>
+                        </sp:Trust10>
+                      </wsp:Policy>
+                    </sp:BootstrapPolicy>
+                  </wsp:Policy>
+                </sp:SecureConversationToken>
+              </wsp:Policy>
+            </sp:ProtectionToken>
+            <sp:AlgorithmSuite>
+              <wsp:Policy>
+                <sp:Basic256 />
+              </wsp:Policy>
+            </sp:AlgorithmSuite>
+            <sp:Layout>
+              <wsp:Policy>
+                <sp:Strict />
+              </wsp:Policy>
+            </sp:Layout>
+            <sp:IncludeTimestamp />
+            <sp:EncryptSignature />
+            <sp:OnlySignEntireHeadersAndBody />
+          </wsp:Policy>
+        </sp:SymmetricBinding>
+        <sp:Wss11 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <wsp:Policy />
+        </sp:Wss11>
+        <sp:Trust10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <wsp:Policy>
+            <sp:MustSupportIssuedTokens />
+            <sp:RequireClientEntropy />
+            <sp:RequireServerEntropy />
+          </wsp:Policy>
+        </sp:Trust10>
+        <wsaw:UsingAddressing />
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsp:Policy wsu:Id="WSHttpBinding_IService_GetData_Input_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+          <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing" />
+        </sp:SignedParts>
+        <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+        </sp:EncryptedParts>
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsp:Policy wsu:Id="WSHttpBinding_IService_GetData_output_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+          <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing" />
+        </sp:SignedParts>
+        <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+        </sp:EncryptedParts>
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsp:Policy wsu:Id="WSHttpBinding_IService_GetDataUsingDataContract_Input_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+          <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing" />
+        </sp:SignedParts>
+        <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+        </sp:EncryptedParts>
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsp:Policy wsu:Id="WSHttpBinding_IService_GetDataUsingDataContract_output_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+          <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing" />
+        </sp:SignedParts>
+        <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+        </sp:EncryptedParts>
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsp:Policy wsu:Id="WSHttpBinding_IService_CreateClient_Input_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+          <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing" />
+        </sp:SignedParts>
+        <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+        </sp:EncryptedParts>
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsp:Policy wsu:Id="WSHttpBinding_IService_CreateClient_output_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+          <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing" />
+        </sp:SignedParts>
+        <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+        </sp:EncryptedParts>
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsp:Policy wsu:Id="WSHttpBinding_IService_CreateGroup_Input_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+          <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing" />
+        </sp:SignedParts>
+        <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+        </sp:EncryptedParts>
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsp:Policy wsu:Id="WSHttpBinding_IService_CreateGroup_output_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+          <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing" />
+        </sp:SignedParts>
+        <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+        </sp:EncryptedParts>
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsp:Policy wsu:Id="WSHttpBinding_IService_GetGroupID_Input_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+          <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing" />
+        </sp:SignedParts>
+        <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+        </sp:EncryptedParts>
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsp:Policy wsu:Id="WSHttpBinding_IService_GetGroupID_output_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+          <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing" />
+          <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing" />
+        </sp:SignedParts>
+        <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <sp:Body />
+        </sp:EncryptedParts>
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://tempuri.org/Imports">
+      <xsd:import schemaLocation="http://localhost:34825/Service.svc?xsd=xsd0" namespace="http://tempuri.org/" />
+      <xsd:import schemaLocation="http://localhost:34825/Service.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
+      <xsd:import schemaLocation="http://localhost:34825/Service.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.DemoService" />
+    </xsd:schema>
+  </wsdl:types>
+  <wsdl:message name="IService_GetData_InputMessage">
+    <wsdl:part name="parameters" element="tns:GetData" />
+  </wsdl:message>
+  <wsdl:message name="IService_GetData_OutputMessage">
+    <wsdl:part name="parameters" element="tns:GetDataResponse" />
+  </wsdl:message>
+  <wsdl:message name="IService_GetDataUsingDataContract_InputMessage">
+    <wsdl:part name="parameters" element="tns:GetDataUsingDataContract" />
+  </wsdl:message>
+  <wsdl:message name="IService_GetDataUsingDataContract_OutputMessage">
+    <wsdl:part name="parameters" element="tns:GetDataUsingDataContractResponse" />
+  </wsdl:message>
+  <wsdl:message name="IService_CreateClient_InputMessage">
+    <wsdl:part name="parameters" element="tns:CreateClient" />
+  </wsdl:message>
+  <wsdl:message name="IService_CreateClient_OutputMessage">
+    <wsdl:part name="parameters" element="tns:CreateClientResponse" />
+  </wsdl:message>
+  <wsdl:message name="IService_CreateGroup_InputMessage">
+    <wsdl:part name="parameters" element="tns:CreateGroup" />
+  </wsdl:message>
+  <wsdl:message name="IService_CreateGroup_OutputMessage">
+    <wsdl:part name="parameters" element="tns:CreateGroupResponse" />
+  </wsdl:message>
+  <wsdl:message name="IService_GetGroupID_InputMessage">
+    <wsdl:part name="parameters" element="tns:GetGroupID" />
+  </wsdl:message>
+  <wsdl:message name="IService_GetGroupID_OutputMessage">
+    <wsdl:part name="parameters" element="tns:GetGroupIDResponse" />
+  </wsdl:message>
+  <wsdl:portType name="IService">
+    <wsdl:operation name="GetData">
+      <wsdl:input wsaw:Action="http://tempuri.org/IService/GetData" message="tns:IService_GetData_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IService/GetDataResponse" message="tns:IService_GetData_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="GetDataUsingDataContract">
+      <wsdl:input wsaw:Action="http://tempuri.org/IService/GetDataUsingDataContract" message="tns:IService_GetDataUsingDataContract_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IService/GetDataUsingDataContractResponse" message="tns:IService_GetDataUsingDataContract_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="CreateClient">
+      <wsdl:input wsaw:Action="http://tempuri.org/IService/CreateClient" message="tns:IService_CreateClient_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IService/CreateClientResponse" message="tns:IService_CreateClient_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="CreateGroup">
+      <wsdl:input wsaw:Action="http://tempuri.org/IService/CreateGroup" message="tns:IService_CreateGroup_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IService/CreateGroupResponse" message="tns:IService_CreateGroup_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="GetGroupID">
+      <wsdl:input wsaw:Action="http://tempuri.org/IService/GetGroupID" message="tns:IService_GetGroupID_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IService/GetGroupIDResponse" message="tns:IService_GetGroupID_OutputMessage" />
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="WSHttpBinding_IService" type="tns:IService">
+    <wsp:PolicyReference URI="#WSHttpBinding_IService_policy" />
+    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
+    <wsdl:operation name="GetData">
+      <soap12:operation soapAction="http://tempuri.org/IService/GetData" style="document" />
+      <wsdl:input>
+        <wsp:PolicyReference URI="#WSHttpBinding_IService_GetData_Input_policy" />
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <wsp:PolicyReference URI="#WSHttpBinding_IService_GetData_output_policy" />
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetDataUsingDataContract">
+      <soap12:operation soapAction="http://tempuri.org/IService/GetDataUsingDataContract" style="document" />
+      <wsdl:input>
+        <wsp:PolicyReference URI="#WSHttpBinding_IService_GetDataUsingDataContract_Input_policy" />
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <wsp:PolicyReference URI="#WSHttpBinding_IService_GetDataUsingDataContract_output_policy" />
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="CreateClient">
+      <soap12:operation soapAction="http://tempuri.org/IService/CreateClient" style="document" />
+      <wsdl:input>
+        <wsp:PolicyReference URI="#WSHttpBinding_IService_CreateClient_Input_policy" />
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <wsp:PolicyReference URI="#WSHttpBinding_IService_CreateClient_output_policy" />
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="CreateGroup">
+      <soap12:operation soapAction="http://tempuri.org/IService/CreateGroup" style="document" />
+      <wsdl:input>
+        <wsp:PolicyReference URI="#WSHttpBinding_IService_CreateGroup_Input_policy" />
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <wsp:PolicyReference URI="#WSHttpBinding_IService_CreateGroup_output_policy" />
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetGroupID">
+      <soap12:operation soapAction="http://tempuri.org/IService/GetGroupID" style="document" />
+      <wsdl:input>
+        <wsp:PolicyReference URI="#WSHttpBinding_IService_GetGroupID_Input_policy" />
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <wsp:PolicyReference URI="#WSHttpBinding_IService_GetGroupID_output_policy" />
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="Service">
+    <wsdl:port name="WSHttpBinding_IService" binding="tns:WSHttpBinding_IService">
+      <soap12:address location="http://localhost:34825/Service.svc" />
+      <wsa10:EndpointReference>
+        <wsa10:Address>http://localhost:34825/Service.svc</wsa10:Address>
+        <Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
+          <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+            <X509Data>
+              <X509Certificate>MIIB7jCCAVugAwIBAgIQX6QErb4BoY1PAIOdvcxpgDAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xMDA5MjUxMDM5NTlaFw0zOTEyMzEyMzU5NTlaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzHgjkmssAeqjF6un99pgjClPkLy/+Ae9Jv6WOwS5dfRtg0O5qp0I9Rhmneig1mvH09pspGcIZ15u5BVpKh0kvw6ZQWPqQV5aC6C/2cSrosUQUxGZsmxMLjjznZXXPpFdMEyH4CZZ2zgrwDyCG0NKaQMvOZtd2dmEeGwzjPFqvfcCAwEAAaNJMEcwRQYDVR0BBD4wPIAQpqUbj0EQKh/SLRHPRr3bp6EWMBQxEjAQBgNVBAMTCWxvY2FsaG9zdIIQX6QErb4BoY1PAIOdvcxpgDAJBgUrDgMCHQUAA4GBAEgA6FhFEz65fDmkFT1X/1GWdQxpapnW0GEN2e47K+xIE3gqRVY4hHQ2wkr2u27CqLNhwCBP/lYdUZo2vX+3qk5gnGMdx9DFDqarsxmbUajFXEYrk8Gt2SnZLuLDewckRsxiiDIupQrUL+AbAKjWl7BH6Rvv3HCwqhM3gXDG8P9M</X509Certificate>
+            </X509Data>
+          </KeyInfo>
+        </Identity>
+      </wsa10:EndpointReference>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service.xsd
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service.xsd	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service.xsd	(revision 4695)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.DemoService" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.DemoService" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:complexType name="CompositeType">
+    <xs:sequence>
+      <xs:element minOccurs="0" name="BoolValue" type="xs:boolean" />
+      <xs:element minOccurs="0" name="StringValue" nillable="true" type="xs:string" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="CompositeType" nillable="true" type="tns:CompositeType" />
+</xs:schema>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service1.xsd
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service1.xsd	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service1.xsd	(revision 4695)
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://tempuri.org/" elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="http://localhost:34825/Service.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.DemoService" />
+  <xs:element name="GetData">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="value" type="xs:int" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GetDataResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="GetDataResult" nillable="true" type="xs:string" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GetDataUsingDataContract">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.DemoService" minOccurs="0" name="composite" nillable="true" type="q1:CompositeType" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GetDataUsingDataContractResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.DemoService" minOccurs="0" name="GetDataUsingDataContractResult" nillable="true" type="q2:CompositeType" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="CreateClient">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="name" nillable="true" type="xs:string" />
+        <xs:element minOccurs="0" name="descr" nillable="true" type="xs:string" />
+        <xs:element minOccurs="0" name="groupID" nillable="true" type="xs:string" />
+        <xs:element minOccurs="0" name="resGroup" nillable="true" type="xs:string" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="CreateClientResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="CreateClientResult" type="xs:boolean" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="CreateGroup">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="name" nillable="true" type="xs:string" />
+        <xs:element minOccurs="0" name="descr" nillable="true" type="xs:string" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="CreateGroupResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="CreateGroupResult" type="xs:boolean" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GetGroupID">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="name" nillable="true" type="xs:string" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GetGroupIDResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="GetGroupIDResult" nillable="true" type="xs:string" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service2.xsd
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service2.xsd	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/Service2.xsd	(revision 4695)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="anyType" nillable="true" type="xs:anyType" />
+  <xs:element name="anyURI" nillable="true" type="xs:anyURI" />
+  <xs:element name="base64Binary" nillable="true" type="xs:base64Binary" />
+  <xs:element name="boolean" nillable="true" type="xs:boolean" />
+  <xs:element name="byte" nillable="true" type="xs:byte" />
+  <xs:element name="dateTime" nillable="true" type="xs:dateTime" />
+  <xs:element name="decimal" nillable="true" type="xs:decimal" />
+  <xs:element name="double" nillable="true" type="xs:double" />
+  <xs:element name="float" nillable="true" type="xs:float" />
+  <xs:element name="int" nillable="true" type="xs:int" />
+  <xs:element name="long" nillable="true" type="xs:long" />
+  <xs:element name="QName" nillable="true" type="xs:QName" />
+  <xs:element name="short" nillable="true" type="xs:short" />
+  <xs:element name="string" nillable="true" type="xs:string" />
+  <xs:element name="unsignedByte" nillable="true" type="xs:unsignedByte" />
+  <xs:element name="unsignedInt" nillable="true" type="xs:unsignedInt" />
+  <xs:element name="unsignedLong" nillable="true" type="xs:unsignedLong" />
+  <xs:element name="unsignedShort" nillable="true" type="xs:unsignedShort" />
+  <xs:element name="char" nillable="true" type="tns:char" />
+  <xs:simpleType name="char">
+    <xs:restriction base="xs:int" />
+  </xs:simpleType>
+  <xs:element name="duration" nillable="true" type="tns:duration" />
+  <xs:simpleType name="duration">
+    <xs:restriction base="xs:duration">
+      <xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?" />
+      <xs:minInclusive value="-P10675199DT2H48M5.4775808S" />
+      <xs:maxInclusive value="P10675199DT2H48M5.4775807S" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:element name="guid" nillable="true" type="tns:guid" />
+  <xs:simpleType name="guid">
+    <xs:restriction base="xs:string">
+      <xs:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:attribute name="FactoryType" type="xs:QName" />
+  <xs:attribute name="Id" type="xs:ID" />
+  <xs:attribute name="Ref" type="xs:IDREF" />
+</xs:schema>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/configuration.svcinfo
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/configuration.svcinfo	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/configuration.svcinfo	(revision 4695)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<configurationSnapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-wcfconfigurationsnapshot">
+  <behaviors />
+  <bindings>
+    <binding digest="System.ServiceModel.Configuration.WSHttpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; messageEncoding=&quot;Text&quot; name=&quot;WSHttpBinding_IService&quot; textEncoding=&quot;utf-8&quot; transactionFlow=&quot;false&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;reliableSession enabled=&quot;false&quot; inactivityTimeout=&quot;00:10:00&quot; ordered=&quot;true&quot; /&gt;&lt;security mode=&quot;Message&quot;&gt;&lt;message algorithmSuite=&quot;Default&quot; clientCredentialType=&quot;UserName&quot; negotiateServiceCredential=&quot;true&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; proxyCredentialType=&quot;None&quot; realm=&quot;&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="wsHttpBinding" name="WSHttpBinding_IService" />
+  </bindings>
+  <endpoints>
+    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:34825/Service.svc&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_IService&quot; contract=&quot;Services.DemoService.IService&quot; name=&quot;WSHttpBinding_IService&quot;&gt;&lt;identity&gt;&lt;certificate encodedValue=&quot;AwAAAAEAAAAUAAAAmVQm1o8gsE3kiadtqfPZVCD1+PQgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhBfpAStvgGhjU8Ag529zGmAMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDkyNTEwMzk1OVoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMeCOSaywB6qMXq6f32mCMKU+QvL/4B70m/pY7BLl19G2DQ7mqnQj1GGad6KDWa8fT2mykZwhnXm7kFWkqHSS/DplBY+pBXloLoL/ZxKuixRBTEZmybEwuOPOdldc+kV0wTIfgJlnbOCvAPIIbQ0ppAy85m13Z2YR4bDOM8Wq99wIDAQABo0kwRzBFBgNVHQEEPjA8gBCmpRuPQRAqH9ItEc9GvdunoRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghBfpAStvgGhjU8Ag529zGmAMAkGBSsOAwIdBQADgYEASADoWEUTPrl8OaQVPVf/UZZ1DGlqmdbQYQ3Z7jsr7EgTeCpFVjiEdDbCSva7bsKos2HAIE/+Vh1Rmja9f7eqTmCcYx3H0MUOpquzGZtRqMVcRiuTwa3ZKdku4sN7ByRGzGKIMi6lCtQv4BsAqNaXsEfpG+/ccLCqEzeBcMbw/0w=&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:34825/Service.svc&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_IService&quot; contract=&quot;Services.DemoService.IService&quot; name=&quot;WSHttpBinding_IService&quot;&gt;&lt;identity&gt;&lt;certificate encodedValue=&quot;AwAAAAEAAAAUAAAAmVQm1o8gsE3kiadtqfPZVCD1+PQgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhBfpAStvgGhjU8Ag529zGmAMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDkyNTEwMzk1OVoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMeCOSaywB6qMXq6f32mCMKU+QvL/4B70m/pY7BLl19G2DQ7mqnQj1GGad6KDWa8fT2mykZwhnXm7kFWkqHSS/DplBY+pBXloLoL/ZxKuixRBTEZmybEwuOPOdldc+kV0wTIfgJlnbOCvAPIIbQ0ppAy85m13Z2YR4bDOM8Wq99wIDAQABo0kwRzBFBgNVHQEEPjA8gBCmpRuPQRAqH9ItEc9GvdunoRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghBfpAStvgGhjU8Ag529zGmAMAkGBSsOAwIdBQADgYEASADoWEUTPrl8OaQVPVf/UZZ1DGlqmdbQYQ3Z7jsr7EgTeCpFVjiEdDbCSva7bsKos2HAIE/+Vh1Rmja9f7eqTmCcYx3H0MUOpquzGZtRqMVcRiuTwa3ZKdku4sN7ByRGzGKIMi6lCtQv4BsAqNaXsEfpG+/ccLCqEzeBcMbw/0w=&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" contractName="Services.DemoService.IService" name="WSHttpBinding_IService" />
+  </endpoints>
+</configurationSnapshot>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/configuration91.svcinfo
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/configuration91.svcinfo	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/Service References/Services.DemoService/configuration91.svcinfo	(revision 4695)
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="utf-8"?>
+<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="M6OCa5IDxtZkSGcYY+xCdouqbcQ=">
+  <bindingConfigurations>
+    <bindingConfiguration bindingType="wsHttpBinding" name="WSHttpBinding_IService">
+      <properties>
+        <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>WSHttpBinding_IService</serializedValue>
+        </property>
+        <property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:01:00</serializedValue>
+        </property>
+        <property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:01:00</serializedValue>
+        </property>
+        <property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:10:00</serializedValue>
+        </property>
+        <property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:01:00</serializedValue>
+        </property>
+        <property path="/bypassProxyOnLocal" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/transactionFlow" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>StrongWildcard</serializedValue>
+        </property>
+        <property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>524288</serializedValue>
+        </property>
+        <property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>65536</serializedValue>
+        </property>
+        <property path="/messageEncoding" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.WSMessageEncoding, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Text</serializedValue>
+        </property>
+        <property path="/proxyAddress" isComplexType="false" isExplicitlyDefined="false" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>32</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>8192</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>16384</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>4096</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>16384</serializedValue>
+        </property>
+        <property path="/reliableSession" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement</serializedValue>
+        </property>
+        <property path="/reliableSession/ordered" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>True</serializedValue>
+        </property>
+        <property path="/reliableSession/inactivityTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:10:00</serializedValue>
+        </property>
+        <property path="/reliableSession/enabled" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/textEncoding" isComplexType="false" isExplicitlyDefined="true" clrType="System.Text.Encoding, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.Text.UTF8Encoding</serializedValue>
+        </property>
+        <property path="/useDefaultWebProxy" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>True</serializedValue>
+        </property>
+        <property path="/allowCookies" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.WSHttpSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.WSHttpSecurityElement</serializedValue>
+        </property>
+        <property path="/security/mode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.SecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Message</serializedValue>
+        </property>
+        <property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.WSHttpTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.WSHttpTransportSecurityElement</serializedValue>
+        </property>
+        <property path="/security/transport/clientCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.HttpClientCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Windows</serializedValue>
+        </property>
+        <property path="/security/transport/proxyCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.HttpProxyCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>None</serializedValue>
+        </property>
+        <property path="/security/transport/extendedProtectionPolicy" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement</serializedValue>
+        </property>
+        <property path="/security/transport/extendedProtectionPolicy/policyEnforcement" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.PolicyEnforcement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Never</serializedValue>
+        </property>
+        <property path="/security/transport/extendedProtectionPolicy/protectionScenario" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.ProtectionScenario, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>TransportSelected</serializedValue>
+        </property>
+        <property path="/security/transport/extendedProtectionPolicy/customServiceNames" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElementCollection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>(Collection)</serializedValue>
+        </property>
+        <property path="/security/transport/realm" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/security/message" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.NonDualMessageSecurityOverHttpElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.NonDualMessageSecurityOverHttpElement</serializedValue>
+        </property>
+        <property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.MessageCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>UserName</serializedValue>
+        </property>
+        <property path="/security/message/negotiateServiceCredential" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>True</serializedValue>
+        </property>
+        <property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Default</serializedValue>
+        </property>
+        <property path="/security/message/establishSecurityContext" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>True</serializedValue>
+        </property>
+      </properties>
+    </bindingConfiguration>
+  </bindingConfigurations>
+  <endpoints>
+    <endpoint name="WSHttpBinding_IService" contract="Services.DemoService.IService" bindingType="wsHttpBinding" address="http://localhost:34825/Service.svc" bindingConfiguration="WSHttpBinding_IService">
+      <properties>
+        <property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>http://localhost:34825/Service.svc</serializedValue>
+        </property>
+        <property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>wsHttpBinding</serializedValue>
+        </property>
+        <property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>WSHttpBinding_IService</serializedValue>
+        </property>
+        <property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Services.DemoService.IService</serializedValue>
+        </property>
+        <property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue>
+        </property>
+        <property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>&lt;Header /&gt;</serializedValue>
+        </property>
+        <property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue>
+        </property>
+        <property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
+        </property>
+        <property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue>
+        </property>
+        <property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
+        </property>
+        <property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue>
+        </property>
+        <property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
+        </property>
+        <property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>AwAAAAEAAAAUAAAAmVQm1o8gsE3kiadtqfPZVCD1+PQgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhBfpAStvgGhjU8Ag529zGmAMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDkyNTEwMzk1OVoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMeCOSaywB6qMXq6f32mCMKU+QvL/4B70m/pY7BLl19G2DQ7mqnQj1GGad6KDWa8fT2mykZwhnXm7kFWkqHSS/DplBY+pBXloLoL/ZxKuixRBTEZmybEwuOPOdldc+kV0wTIfgJlnbOCvAPIIbQ0ppAy85m13Z2YR4bDOM8Wq99wIDAQABo0kwRzBFBgNVHQEEPjA8gBCmpRuPQRAqH9ItEc9GvdunoRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghBfpAStvgGhjU8Ag529zGmAMAkGBSsOAwIdBQADgYEASADoWEUTPrl8OaQVPVf/UZZ1DGlqmdbQYQ3Z7jsr7EgTeCpFVjiEdDbCSva7bsKos2HAIE/+Vh1Rmja9f7eqTmCcYx3H0MUOpquzGZtRqMVcRiuTwa3ZKdku4sN7ByRGzGKIMi6lCtQv4BsAqNaXsEfpG+/ccLCqEzeBcMbw/0w=</serializedValue>
+        </property>
+        <property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>My</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>LocalMachine</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>FindBySubjectDistinguishedName</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>WSHttpBinding_IService</serializedValue>
+        </property>
+        <property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/endpointConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+      </properties>
+    </endpoint>
+  </endpoints>
+</SavedWcfConfigurationInformation>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/app.config
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/app.config	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.DemoClient/app.config	(revision 4695)
@@ -0,0 +1,35 @@
+﻿<?xml version="1.0"?>
+<configuration>
+  <system.serviceModel>
+    <bindings>
+      <wsHttpBinding>
+        <binding name="WSHttpBinding_IService" closeTimeout="00:01:00"
+          openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+          bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+          maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"
+          textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
+          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+          <reliableSession ordered="true" inactivityTimeout="00:10:00"
+            enabled="false" />
+          <security mode="Message">
+            <transport clientCredentialType="Windows" proxyCredentialType="None"
+              realm="" />
+            <message clientCredentialType="UserName" negotiateServiceCredential="true"
+              algorithmSuite="Default" />
+          </security>
+        </binding>
+      </wsHttpBinding>
+    </bindings>
+
+    <client>
+      <endpoint address="http://localhost:34825/Service.svc" binding="wsHttpBinding"
+        bindingConfiguration="WSHttpBinding_IService" contract="Services.DemoService.IService"
+        name="WSHttpBinding_IService">
+        <identity>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAmVQm1o8gsE3kiadtqfPZVCD1+PQgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhBfpAStvgGhjU8Ag529zGmAMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDkyNTEwMzk1OVoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMeCOSaywB6qMXq6f32mCMKU+QvL/4B70m/pY7BLl19G2DQ7mqnQj1GGad6KDWa8fT2mykZwhnXm7kFWkqHSS/DplBY+pBXloLoL/ZxKuixRBTEZmybEwuOPOdldc+kV0wTIfgJlnbOCvAPIIbQ0ppAy85m13Z2YR4bDOM8Wq99wIDAQABo0kwRzBFBgNVHQEEPjA8gBCmpRuPQRAqH9ItEc9GvdunoRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghBfpAStvgGhjU8Ag529zGmAMAkGBSsOAwIdBQADgYEASADoWEUTPrl8OaQVPVf/UZZ1DGlqmdbQYQ3Z7jsr7EgTeCpFVjiEdDbCSva7bsKos2HAIE/+Vh1Rmja9f7eqTmCcYx3H0MUOpquzGZtRqMVcRiuTwa3ZKdku4sN7ByRGzGKIMi6lCtQv4BsAqNaXsEfpG+/ccLCqEzeBcMbw/0w=" />
+        </identity>
+      </endpoint>
+    </client>
+  </system.serviceModel>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/HeuristicLab.Services.DemoService.csproj
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/HeuristicLab.Services.DemoService.csproj	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/HeuristicLab.Services.DemoService.csproj	(revision 4695)
@@ -0,0 +1,120 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>
+    </ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{C1A05138-12F5-4B47-B32D-80A508D3073A}</ProjectGuid>
+    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Services.DemoService</RootNamespace>
+    <AssemblyName>HeuristicLab.Services.DemoService-3.3</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Web.DynamicData" />
+    <Reference Include="System.Web.Entity" />
+    <Reference Include="System.Web.ApplicationServices" />
+    <Reference Include="System" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.EnterpriseServices" />
+    <Reference Include="System.Runtime.Serialization" />
+    <Reference Include="System.ServiceModel" />
+    <Reference Include="System.ServiceModel.Web" />
+    <Reference Include="System.Web" />
+    <Reference Include="System.Web.Extensions" />
+    <Reference Include="System.Web.Services" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Xml.Linq" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Service.svc" />
+    <Content Include="Web.config">
+      <SubType>Designer</SubType>
+    </Content>
+    <Content Include="Web.Debug.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </Content>
+    <Content Include="Web.Release.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Service.svc.cs">
+      <DependentUpon>Service.svc</DependentUpon>
+    </Compile>
+    <Compile Include="IService.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="App_Data\" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Services.Authentication.AdminMethods\HeuristicLab.Services.Authentication.AdminMethods.csproj">
+      <Project>{2DC20235-6A91-4ABC-8E3E-660B43EAD23B}</Project>
+      <Name>HeuristicLab.Services.Authentication.AdminMethods</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+        <WebProjectProperties>
+          <UseIIS>False</UseIIS>
+          <AutoAssignPort>True</AutoAssignPort>
+          <DevelopmentServerPort>34825</DevelopmentServerPort>
+          <DevelopmentServerVPath>/</DevelopmentServerVPath>
+          <IISUrl>
+          </IISUrl>
+          <NTLMAuthentication>False</NTLMAuthentication>
+          <UseCustomServer>False</UseCustomServer>
+          <CustomServerUrl>
+          </CustomServerUrl>
+          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
+          <EnableWcfTestClientForSVCDefaultValue>True</EnableWcfTestClientForSVCDefaultValue>
+        </WebProjectProperties>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/HeuristicLab.Services.DemoService.csproj.user
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/HeuristicLab.Services.DemoService.csproj.user	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/HeuristicLab.Services.DemoService.csproj.user	(revision 4695)
@@ -0,0 +1,28 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+        <WebProjectProperties>
+          <StartPageUrl>
+          </StartPageUrl>
+          <StartAction>CurrentPage</StartAction>
+          <AspNetDebugging>True</AspNetDebugging>
+          <SilverlightDebugging>False</SilverlightDebugging>
+          <NativeDebugging>False</NativeDebugging>
+          <SQLDebugging>False</SQLDebugging>
+          <ExternalProgram>
+          </ExternalProgram>
+          <StartExternalURL>
+          </StartExternalURL>
+          <StartCmdLineArguments>
+          </StartCmdLineArguments>
+          <StartWorkingDirectory>
+          </StartWorkingDirectory>
+          <EnableENC>False</EnableENC>
+          <AlwaysStartWebServerOnDebug>True</AlwaysStartWebServerOnDebug>
+        </WebProjectProperties>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+</Project>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/IService.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/IService.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/IService.cs	(revision 4695)
@@ -0,0 +1,69 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+using System.ServiceModel;
+using System.Collections;
+
+namespace HeuristicLab.Services.DemoService {
+  // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
+  [ServiceContract]
+  public interface IService {
+
+    [OperationContract]
+    string GetData(int value);
+
+    [OperationContract]
+    CompositeType GetDataUsingDataContract(CompositeType composite);
+
+    // TODO: Add your service operations here
+    [OperationContract]
+    bool CreateClient(string name, string descr, string groupID, string resGroup);
+
+    [OperationContract]
+    bool CreateGroup(string name, string descr);
+
+    [OperationContract]
+    string GetGroupID(string name);  
+  }
+
+
+  // Use a data contract as illustrated in the sample below to add composite types to service operations.
+  [DataContract]
+  public class CompositeType {
+    bool boolValue = true;
+    string stringValue = "Hello ";
+
+    [DataMember]
+    public bool BoolValue {
+      get { return boolValue; }
+      set { boolValue = value; }
+    }
+
+    [DataMember]
+    public string StringValue {
+      get { return stringValue; }
+      set { stringValue = value; }
+    }   
+
+
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Properties/AssemblyInfo.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Properties/AssemblyInfo.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Properties/AssemblyInfo.cs	(revision 4695)
@@ -0,0 +1,56 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Services.DemoService")]
+[assembly: AssemblyDescription("A demo service to show how to implement HeuristicLab services.")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2010 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("bd3e7cba-3a3a-4f02-92d0-d1fccc7a904c")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.0.0")]
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Service.svc
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Service.svc	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Service.svc	(revision 4695)
@@ -0,0 +1,1 @@
+﻿<%@ ServiceHost Language="C#" Debug="true" Service="HeuristicLab.Services.DemoService.Service" CodeBehind="Service.svc.cs" %>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Service.svc.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Service.svc.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Service.svc.cs	(revision 4695)
@@ -0,0 +1,75 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Security.Permissions;
+using System.Collections;
+using AM = HeuristicLab.Services.Authentication.AdminMethods;
+using System.Collections.Generic;
+
+namespace HeuristicLab.Services.DemoService {
+  // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
+  public class Service : IService {
+    [PrincipalPermission(SecurityAction.Demand, Role = "Everyone")]
+    public string GetData(int value) {
+      return string.Format("You entered: {0}", value);
+    }
+
+    public CompositeType GetDataUsingDataContract(CompositeType composite) {
+      if (composite == null) {
+        throw new ArgumentNullException("composite");
+      }
+      if (composite.BoolValue) {
+        composite.StringValue += "Suffix";
+      }
+      return composite;
+    }
+
+    public bool CreateClient(string name, string descr, string groupID, string resGroup){
+      Hashtable sht = new Hashtable();
+      sht[AM.eResource.ResourceID] = ""; //notwendig ""
+      sht[AM.eResource.Name]= name;
+      sht[AM.eResource.Description] = descr;
+      sht[AM.eResource.ResourceType] = resGroup;
+      sht[AM.eResource.ResourceIDGroup] = groupID;
+      return new AM.ClientAdmin().Create(sht); 
+    }
+
+    public bool CreateGroup(string name, string descr) {
+      Hashtable sht = new Hashtable();
+      sht[AM.eResource.Name] = name;
+      sht[AM.eResource.Description] = descr;
+      return new AM.GroupAdmin().Create(sht);
+    }
+
+    public string GetGroupID(string name) {
+      string gIDStr = "";
+      HashSet<Hashtable> rht = new HashSet<Hashtable>();
+      Hashtable sht = new Hashtable();
+      sht[AM.eResource.Name] = "g1";
+      rht = new AM.GroupAdmin().Get(sht);
+      foreach (Hashtable ht in rht) {
+        gIDStr = ht[AM.eResource.ResourceID].ToString();
+      }
+      return gIDStr;
+    }
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Web.Debug.config
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Web.Debug.config	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Web.Debug.config	(revision 4695)
@@ -0,0 +1,7 @@
+﻿<?xml version="1.0"?>
+
+<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+
+</configuration>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Web.Release.config
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Web.Release.config	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/Web.Release.config	(revision 4695)
@@ -0,0 +1,11 @@
+﻿<?xml version="1.0"?>
+
+<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+
+  <system.web>
+    <compilation xdt:Transform="RemoveAttributes(debug)" />
+  </system.web>
+
+</configuration>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/web.config
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/web.config	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLab.Services.DemoService/web.config	(revision 4695)
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<configuration>
+  <connectionStrings>
+    <add name="HeuristicLab.Authentication"
+         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication"/>
+  </connectionStrings>
+
+  <system.web>
+    <authentication mode="Forms" />
+    <compilation debug="true" targetFramework="4.0" />
+
+    <membership>
+      <providers>
+        <clear/>
+        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="HeuristicLab.Authentication"
+             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
+             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
+             applicationName="HeuristicLab.Authentication" />
+      </providers>
+    </membership>
+
+    <roleManager enabled="true">
+      <providers>
+        <clear/>
+        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication" />
+      </providers>
+    </roleManager>
+  </system.web>
+  
+  <system.serviceModel>
+    <bindings>
+      <wsHttpBinding>
+        <binding name="DefaultWSHttpBinding">
+          <security mode="Message">
+            <message clientCredentialType="UserName" />
+          </security>
+        </binding>
+      </wsHttpBinding>
+      
+      <mexHttpBinding>
+        <binding name="DefaultMexBinding" />
+      </mexHttpBinding>
+    </bindings>
+    
+    <services>
+      <service behaviorConfiguration="DefaultBehavior" name="HeuristicLab.Services.DemoService.Service">
+        <clear />
+        <endpoint binding="wsHttpBinding" bindingConfiguration="DefaultWSHttpBinding"
+          contract="HeuristicLab.Services.DemoService.IService" listenUriMode="Explicit">
+        </endpoint>
+        
+        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="DefaultMexBinding"
+          contract="IMetadataExchange" listenUriMode="Explicit">
+        </endpoint>
+      </service>
+    </services>
+    
+    <behaviors>
+      <serviceBehaviors>
+        <behavior name="DefaultBehavior">
+          <serviceMetadata httpGetEnabled="true" />
+          <serviceDebug includeExceptionDetailInFaults="true" />
+          <serviceAuthorization principalPermissionMode="UseAspNetRoles"
+            roleProviderName="AspNetSqlRoleProvider" />
+          <serviceCredentials>
+            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
+            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
+              membershipProviderName="AspNetSqlMembershipProvider" />
+          </serviceCredentials>
+        </behavior>
+      </serviceBehaviors>
+    </behaviors>
+    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
+  </system.serviceModel>
+
+  <system.webServer>
+    <modules runAllManagedModulesForAllRequests="true"/>
+  </system.webServer>
+</configuration>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLabServicesDemo.sln
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLabServicesDemo.sln	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HLDemo/HeuristicLabServicesDemo.sln	(revision 4695)
@@ -0,0 +1,29 @@
+﻿
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.DemoService", "HeuristicLab.Services.DemoService\HeuristicLab.Services.DemoService.csproj", "{C1A05138-12F5-4B47-B32D-80A508D3073A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.DemoClient", "HeuristicLab.DemoClient\HeuristicLab.DemoClient.csproj", "{92119B2A-37FA-444B-8C68-61114BD041F4}"
+	ProjectSection(ProjectDependencies) = postProject
+		{C1A05138-12F5-4B47-B32D-80A508D3073A} = {C1A05138-12F5-4B47-B32D-80A508D3073A}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{C1A05138-12F5-4B47-B32D-80A508D3073A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C1A05138-12F5-4B47-B32D-80A508D3073A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C1A05138-12F5-4B47-B32D-80A508D3073A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C1A05138-12F5-4B47-B32D-80A508D3073A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{92119B2A-37FA-444B-8C68-61114BD041F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{92119B2A-37FA-444B-8C68-61114BD041F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{92119B2A-37FA-444B-8C68-61114BD041F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{92119B2A-37FA-444B-8C68-61114BD041F4}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/ClientAdmin.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/ClientAdmin.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/ClientAdmin.cs	(revision 4695)
@@ -0,0 +1,171 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Collections;
+using System.Linq;
+using System.Data.Linq;
+using System.Data.Linq.Mapping;
+using System.Text;
+
+using HeuristicLab.Services.Authentication.DataAccess;
+using HeuristicLab.Services.Authentication.DataTransfer;
+using HeuristicLab.Services.Authentication;
+using DA = HeuristicLab.Services.Authentication.DataAccess;
+using DT = HeuristicLab.Services.Authentication.DataTransfer;
+using HLSA = HeuristicLab.Services.Authentication;
+
+namespace HeuristicLab.Services.Authentication.AdminMethods {
+  public class ClientAdmin : ResourceAdmin {
+
+    private void TransferData(DT.Client c, Hashtable values) {
+      c.ResourceID = new Guid((string)values[eResource.ResourceID]);
+      c.Name = (string)values[eResource.Name];
+      c.Description = (string)values[eResource.Description];
+      c.ResourceType = "Client";
+      c.ProcessorType = (string)values[eResource.ProcessorType];
+      c.NumberOfProcessors = (string)values[eResource.NumberOfProcessors];
+      c.NumberOfThreads = (string)values[eResource.NumberOfThreads];
+      c.MemorySize = (string)values[eResource.MemorySize];
+      c.IPAdress = (string)values[eResource.IPAdress];
+      c.OperatingSystem = (string)values[eResource.OperatingSystem];
+    }
+
+    public override HashSet<Hashtable> Get(Hashtable values) {
+      values[eResource.ResourceType] = "Client";
+      String QueryString = "SELECT * FROM Resource";
+      List<String> lcv = new List<String>();
+      String QueryStringExtension = " WHERE ";
+      CreateQueryStringExtension(lcv, ref QueryStringExtension, values);
+      if (QueryStringExtension.CompareTo(" WHERE ") > 0) {
+        QueryString += QueryStringExtension;
+      } // else select all
+      //string val1 = "%" + ((string)tmpHt[eClient.Name]) + "%";
+      //QueryString += eClient.Name + " LIKE {0}";
+      object[] compValues = lcv.ToArray();
+      using (ClientManagmentDataContext cmdc = new ClientManagmentDataContext()) {
+        if (cmdc.DatabaseExists()) {
+          Table<DA.Resource> clTable = cmdc.GetTable<DA.Resource>();
+          IEnumerable<DA.Resource> clients = cmdc.ExecuteQuery<DA.Resource>(QueryString, compValues);
+          HashSet<Hashtable> resultSet = new HashSet<Hashtable>();
+          var selectedClients = from c in clients orderby c.Name select HLSA.Convert.ToDto((DA.Client)c);
+          foreach (DT.Client cl in selectedClients) {
+            Hashtable ht = new Hashtable();
+            ht.Add(eResource.ResourceID, cl.ResourceID);
+            ht.Add(eResource.Name, cl.Name);
+            ht.Add(eResource.Description, cl.Description);
+            ht.Add(eResource.ResourceType, cl.ResourceType);
+            ht.Add(eResource.ProcessorType, cl.ProcessorType);
+            ht.Add(eResource.NumberOfProcessors, cl.NumberOfProcessors);
+            ht.Add(eResource.NumberOfThreads, cl.NumberOfThreads);
+            ht.Add(eResource.IPAdress, cl.IPAdress);
+            ht.Add(eResource.MemorySize, cl.MemorySize);
+            ht.Add(eResource.OperatingSystem, cl.OperatingSystem);
+            // look for group entries in ResourceResourcGroup  
+            //Guid groupID = new Guid();  /// ??
+            String groupID = "";
+            String groupName = "";
+            GetGroupIDandName(ref groupID, ref groupName, cmdc, cl.ResourceID);
+            ht.Add(eResource.ResourceIDGroup, groupID);
+            ht.Add(eResource.ResourceNameGroup, groupName);
+
+            resultSet.Add(ht);
+          }
+          return resultSet;
+        }
+        return null;
+      }
+    }
+    
+    public override bool Create(Hashtable values) {
+      if (((string)values[eResource.ResourceIDGroup] == "") ||
+          ((string)values[eResource.ResourceID] != "")) {
+        return false;
+      }
+      DT.Client c = new DT.Client();
+      values[eResource.ResourceID] = Guid.NewGuid().ToString();
+      values[eResource.ResourceType] = "Client";
+      TransferData(c, values);
+      Guid groupID = new Guid((string)values[eResource.ResourceIDGroup]);
+      using (ClientManagmentDataContext cmdc = new ClientManagmentDataContext()) {
+        if (cmdc.DatabaseExists()) {
+          // Client
+          DA.Client clEntity = HLSA.Convert.ToEntity(c);
+          cmdc.GetTable<DA.Resource>().InsertOnSubmit(clEntity);
+
+          Table<DA.Resource> clTable = cmdc.GetTable<DA.Resource>();
+          //Table<ResourceResourceGroup> rrgTable = cmdc.GetTable<ResourceResourceGroup>();
+          DA.Resource groupEntity = cmdc.GetTable<DA.Resource>().FirstOrDefault(x => x.ResourceID == groupID);
+          if (groupEntity == null)
+            return false;
+
+          cmdc.SubmitChanges();
+
+          DA.Resource clientEntity = cmdc.GetTable<DA.Resource>().FirstOrDefault(x => x.ResourceID == c.ResourceID);
+          if (clientEntity == null)
+           return false;
+
+          //ResourceResourceGroup 
+          ResourceResourceGroup rrgEntity = new ResourceResourceGroup();
+          rrgEntity.ResourceGroupID = groupEntity.ResourceID;
+          rrgEntity.ResourceID = clientEntity.ResourceID;
+          cmdc.GetTable<ResourceResourceGroup>().InsertOnSubmit(rrgEntity);
+
+          cmdc.SubmitChanges();
+          return true;
+        }
+        return false;
+      }
+    }
+
+    public override bool Update(Hashtable values) {
+      string groupIDString = (string)values[eResource.ResourceIDGroup];
+      string IDString = (string)values[eResource.ResourceID];
+
+      DT.Client uc = new DT.Client();
+      bool groupModified = false;
+      bool success = true;
+      bool validGroupID = (IDString != "") && (IsIDString(groupIDString));
+      bool validID = (IDString != "") && (IsIDString(IDString));
+
+      if (!validGroupID || !validID || (IDString.CompareTo(groupIDString) == 0))
+        return false;
+
+      Guid resID = new Guid(IDString);
+      TransferData(uc, values);
+
+      using (ClientManagmentDataContext cmdc = new ClientManagmentDataContext()) {
+
+        if (cmdc.DatabaseExists()) {
+            Guid currentGroupID = new Guid(groupIDString);
+            Guid oldGroupID = new Guid();
+
+            ResourceResourceGroup rrgEntity = cmdc.GetTable<ResourceResourceGroup>().FirstOrDefault(
+                                 x => x.ResourceID == resID);
+          if (rrgEntity != null) {
+            oldGroupID = rrgEntity.ResourceGroupID;
+          }
+          // check if groupname was modified
+          groupModified = (oldGroupID != currentGroupID);
+
+          DA.Resource clientEntity = cmdc.GetTable<DA.Resource>().FirstOrDefault(x => x.ResourceID == uc.ResourceID);
+          // update client
+          if ((clientEntity != null) && success) {
+            uc.ResourceType = clientEntity.ResourceType; // dont allow change of ResourceTyp
+            HLSA.Convert.ToEntity(uc, (DA.Client)clientEntity);
+            if (groupModified) {
+              // remove entry in ResourceResourcGroup if group modiied
+              RemoveRRGEntry(cmdc, resID);
+            }
+            cmdc.SubmitChanges();
+          }
+
+          if (groupModified && success) {
+            CreateRRGEntry(cmdc, resID, currentGroupID);
+            cmdc.SubmitChanges();
+          }
+        }
+      }
+      return success;
+    }    
+
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/GroupAdmin.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/GroupAdmin.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/GroupAdmin.cs	(revision 4695)
@@ -0,0 +1,160 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Collections;
+using System.Linq;
+using System.Data.Linq;
+using System.Data.Linq.Mapping;
+using System.Text;
+
+using HeuristicLab.Services.Authentication.DataAccess;
+using HeuristicLab.Services.Authentication.DataTransfer;
+using HeuristicLab.Services.Authentication;
+using DA = HeuristicLab.Services.Authentication.DataAccess;
+using DT = HeuristicLab.Services.Authentication.DataTransfer;
+using HLSA = HeuristicLab.Services.Authentication;
+
+namespace HeuristicLab.Services.Authentication.AdminMethods {
+  public class GroupAdmin : ResourceAdmin {
+
+    public override HashSet<Hashtable> Get(Hashtable values) {
+      values[eResource.ResourceType] = "ResourceGroup";
+      String QueryString = "SELECT * FROM Resource";
+      List<String> lcv = new List<String>();
+      String QueryStringExtension = " WHERE ";
+      CreateQueryStringExtension(lcv, ref QueryStringExtension, values);
+      if (QueryStringExtension.CompareTo(" WHERE ") > 0) {
+        QueryString += QueryStringExtension;
+      } // else select all
+      object[] compValues = lcv.ToArray();
+      using (ClientManagmentDataContext cmdc = new ClientManagmentDataContext()) {
+        if (cmdc.DatabaseExists()) {
+          Table<DA.Resource> clTable = cmdc.GetTable<DA.Resource>();
+          IEnumerable<DA.Resource> groups = cmdc.ExecuteQuery<DA.Resource>(QueryString, compValues);
+          HashSet<Hashtable> resultSet = new HashSet<Hashtable>();
+          var selectedGroups = from c in groups orderby c.Name select HLSA.Convert.ToDto((DA.ResourceGroup)c);
+          foreach (DT.ResourceGroup cl in selectedGroups) {
+            Hashtable ht = new Hashtable();
+            ht.Add(eResource.ResourceID, cl.ResourceID);
+            ht.Add(eResource.Name, cl.Name);
+            ht.Add(eResource.Description, cl.Description);
+            ht.Add(eResource.ResourceType, cl.ResourceType);
+            // look for group entries in ResourceResourcGroup  
+            //Guid groupID = new Guid();  /// ??
+            String groupID = "";
+            String groupName = "";
+            GetGroupIDandName(ref groupID, ref groupName, cmdc, cl.ResourceID);
+
+            ht.Add(eResource.ResourceIDGroup, groupID);
+            ht.Add(eResource.ResourceNameGroup, groupName);
+
+            resultSet.Add(ht);
+          }
+          return resultSet;
+        }
+        return null;
+      }
+    }
+
+    private void TransferData(DT.ResourceGroup c, Hashtable values) {
+      c.ResourceID = new Guid((string)values[eResource.ResourceID]);
+      c.Name = (string)values[eResource.Name];
+      c.Description = (string)values[eResource.Description];
+      c.ResourceType = "ResourceGroup";
+    }
+
+    public override bool Create(Hashtable values) {
+      if ((values[eResource.ResourceID] != null) && ((string)values[eResource.ResourceID] != "")) {
+        return false;
+      }
+      DT.ResourceGroup g = new DT.ResourceGroup();
+      values[eResource.ResourceID] = Guid.NewGuid().ToString();
+      TransferData(g, values);
+
+      using (ClientManagmentDataContext cmdc = new ClientManagmentDataContext()) {
+        if (cmdc.DatabaseExists()) {
+          DA.ResourceGroup gEntity = HLSA.Convert.ToEntity(g);
+          cmdc.GetTable<DA.Resource>().InsertOnSubmit(gEntity);
+          cmdc.SubmitChanges();
+
+          //ResourceResourceGroup 
+          if ((values[eResource.ResourceIDGroup] != null) && ((string)values[eResource.ResourceIDGroup] != "")) {
+            Guid groupID = new Guid((string)values[eResource.ResourceIDGroup]);
+
+            Table<DA.Resource> clTable = cmdc.GetTable<DA.Resource>();
+            Table<ResourceResourceGroup> rrgTable = cmdc.GetTable<ResourceResourceGroup>();
+            DA.Resource groupEntity = cmdc.GetTable<DA.Resource>().FirstOrDefault(x => x.ResourceID == groupID);
+            if (groupEntity == null)
+              return false;
+
+            cmdc.SubmitChanges();
+
+            DA.Resource clientEntity = cmdc.GetTable<DA.Resource>().FirstOrDefault(x => x.ResourceID == g.ResourceID);
+            if (clientEntity == null)
+              return false;
+
+            //ResourceResourceGroup 
+            ResourceResourceGroup rrgEntity = new ResourceResourceGroup();
+            rrgEntity.ResourceGroupID = groupEntity.ResourceID;
+            rrgEntity.ResourceID = clientEntity.ResourceID;
+            cmdc.GetTable<ResourceResourceGroup>().InsertOnSubmit(rrgEntity);
+
+            cmdc.SubmitChanges();
+          }
+          return true;
+        }
+        return false;
+      }
+    }
+
+    public override bool Update(Hashtable values) {
+      string groupIDString = (string)values[eResource.ResourceIDGroup];
+      string IDString = (string)values[eResource.ResourceID];
+
+      DT.ResourceGroup uc = new DT.ResourceGroup();
+      bool groupModified = false;
+      bool success = true;
+      bool validGroupID = IsIDString(groupIDString);
+      bool validID = (IDString != "") && (IsIDString(IDString));
+
+      if (!validGroupID || !validID || (IDString.CompareTo(groupIDString) == 0))
+        return false;
+
+      Guid resID = new Guid(IDString);
+      TransferData(uc, values);
+
+      using (ClientManagmentDataContext cmdc = new ClientManagmentDataContext()) {
+
+        if (cmdc.DatabaseExists()) {
+          Guid currentGroupID = new Guid(groupIDString);
+          Guid oldGroupID = new Guid();
+
+          ResourceResourceGroup rrgEntity = cmdc.GetTable<ResourceResourceGroup>().FirstOrDefault(
+                               x => x.ResourceID == resID);
+          
+          if (rrgEntity != null) {
+            oldGroupID = rrgEntity.ResourceGroupID;
+          }
+          // check if groupname was modified
+          groupModified = (oldGroupID != currentGroupID);
+          DA.Resource resEntity = cmdc.GetTable<DA.Resource>().FirstOrDefault(x => x.ResourceID == uc.ResourceID);
+          // update client
+          if ((resEntity != null) && success) {
+            uc.ResourceType = resEntity.ResourceType; // dont allow change of ResourceTyp
+            HLSA.Convert.ToEntity(uc, (DA.ResourceGroup)resEntity);
+            if (groupModified) {
+              // remove entry in ResourceResourcGroup if group modiied
+              RemoveRRGEntry(cmdc, resID);              
+            }
+            cmdc.SubmitChanges();
+          }
+
+          if (groupModified && success) {
+            CreateRRGEntry(cmdc, resID, currentGroupID);
+            cmdc.SubmitChanges();
+          }
+        }
+      }
+      return success;
+    }
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/HeuristicLab.Services.Authentication.AdminMethods.csproj
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/HeuristicLab.Services.Authentication.AdminMethods.csproj	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/HeuristicLab.Services.Authentication.AdminMethods.csproj	(revision 4695)
@@ -0,0 +1,87 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{2DC20235-6A91-4ABC-8E3E-660B43EAD23B}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Services.Authentication.AdminMethods</RootNamespace>
+    <AssemblyName>HeuristicLab.Services.Authentication.AdminMethods</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HLAuthenticationAdminMethods.pfx</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Data.Linq" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="AdminMethods.cs" />
+    <Compile Include="ClientAdmin.cs" />
+    <Compile Include="GroupAdmin.cs" />
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="ResourceAdmin.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\HeuristicLab.Services.Authentication.DataAccess\HeuristicLab.Services.Authentication.DataAccess.csproj">
+      <Project>{AC7C2117-034E-4301-8A43-C869930D404E}</Project>
+      <Name>HeuristicLab.Services.Authentication.DataAccess</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Services.Authentication.DataTransfer\HeuristicLab.Services.Authentication.DataTransfer.csproj">
+      <Project>{73E5113E-A293-4384-8B16-3CE38F2CFDC9}</Project>
+      <Name>HeuristicLab.Services.Authentication.DataTransfer</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Services.Authentication\HeuristicLab.Services.Authentication.csproj">
+      <Project>{ED8DC6E8-57C6-49E0-8CDF-25703AC52350}</Project>
+      <Name>HeuristicLab.Services.Authentication</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HLAuthenticationAdminMethods.pfx" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/Properties/AssemblyInfo.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/Properties/AssemblyInfo.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/Properties/AssemblyInfo.cs	(revision 4695)
@@ -0,0 +1,36 @@
+﻿using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Services.Authentication.AdminMethods")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab.Services.Authentication.AdminMethods")]
+[assembly: AssemblyCopyright("Copyright ©  2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("cd5eaa9a-2caf-4989-bf5f-a76b2006cb8b")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/ResourceAdmin.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/ResourceAdmin.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.AdminMethods/ResourceAdmin.cs	(revision 4695)
@@ -0,0 +1,115 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Collections;
+using System.Linq;
+using System.Data.Linq;
+using System.Data.Linq.Mapping;
+using System.Text;
+
+using HeuristicLab.Services.Authentication.DataAccess;
+using HeuristicLab.Services.Authentication.DataTransfer;
+using HeuristicLab.Services.Authentication;
+using DA = HeuristicLab.Services.Authentication.DataAccess;
+using DT = HeuristicLab.Services.Authentication.DataTransfer;
+using HLSA = HeuristicLab.Services.Authentication;
+
+namespace HeuristicLab.Services.Authentication.AdminMethods {
+
+  public enum eResource {
+    ResourceID = 1, Name = 2, Description = 3, ResourceType = 4,
+    ProcessorType = 5, NumberOfProcessors = 6, NumberOfThreads = 7,
+    MemorySize = 8, IPAdress = 9, OperatingSystem = 10, ResourceNameGroup, ResourceIDGroup,
+    GroupGroupID, GroupGroupName
+  };
+
+  public abstract class ResourceAdmin {    
+
+    public abstract HashSet<Hashtable> Get(Hashtable values);
+    public abstract bool Create(Hashtable values);    
+    public abstract bool Update(Hashtable values);    
+    
+    public bool RemoveRRGEntry(ClientManagmentDataContext cmdc, Guid resID) {
+      ResourceResourceGroup rrgEntity = cmdc.GetTable<ResourceResourceGroup>().FirstOrDefault(
+                      x => x.ResourceID == resID);
+      //ResourceResourceGroup rrgEntityGroup = cmdc.GetTable<ResourceResourceGroup>().FirstOrDefault(
+      //                x => x.ResourceGroupID == resID);
+      if (rrgEntity != null) { // && (rrgEntityGroup == null)) {
+        cmdc.GetTable<ResourceResourceGroup>().DeleteOnSubmit(rrgEntity);
+        return true;
+      }
+      return false;
+    }
+    
+    public void CreateRRGEntry(ClientManagmentDataContext cmdc, Guid clientID, Guid groupID) {
+      ResourceResourceGroup rrgEntity = new ResourceResourceGroup();
+      rrgEntity.ResourceGroupID = groupID;
+      rrgEntity.ResourceID = clientID;
+      cmdc.GetTable<ResourceResourceGroup>().InsertOnSubmit(rrgEntity);
+    }
+    
+    public void GetGroupIDandName(ref String groupID, ref String groupName, ClientManagmentDataContext cmdc, Guid clientID) {
+      ResourceResourceGroup rrgEntity = cmdc.GetTable<ResourceResourceGroup>().FirstOrDefault(
+                               x => x.ResourceID == clientID);
+      if (rrgEntity != null) {
+        groupID = (rrgEntity.ResourceGroupID).ToString();
+        DA.Resource groupEntity = cmdc.GetTable<DA.Resource>().FirstOrDefault(
+                  x => x.ResourceID == rrgEntity.ResourceGroupID);
+        groupName = groupEntity.Name;
+      }
+    }
+    
+    public void CreateQueryStringExtension(List<String> compareValues, ref String QueryStringExtension, Hashtable ht) {
+      int i = 0;
+      foreach (DictionaryEntry kvp in ht) {
+        if (((string)kvp.Value != "") &&
+          (kvp.Key.Equals(eResource.ResourceNameGroup) == false) &&
+          (kvp.Key.Equals(eResource.ResourceIDGroup) == false)) {
+          compareValues.Add(String.Format("%" + (ht[kvp.Key]).ToString() + "%"));
+          if (i == 0)
+            QueryStringExtension += (kvp.Key.ToString() + " LIKE {" + i + "}");
+          else
+            QueryStringExtension += " AND " + (kvp.Key.ToString() + " LIKE {" + i + "}");
+          i++;
+        }
+      }
+    }
+    
+    public bool Delete(Hashtable values) {
+      string idStr = (string)values[eResource.ResourceID];
+      if ((idStr == "") || (!IsIDString(idStr))) {
+        return false;
+      }
+
+      using (ClientManagmentDataContext cmdc = new ClientManagmentDataContext()) {
+        Guid clientID = new Guid(idStr);
+
+        if (cmdc.DatabaseExists()) {
+          // remove entry in ResourceResourcGroup  
+          //if (!(RemoveRRGEntry(cmdc, clientID)))
+          //  return false;
+          RemoveRRGEntry(cmdc, clientID);
+          // check if resource is member of a group
+          DA.Resource Entity = cmdc.GetTable<DA.Resource>().FirstOrDefault(x => x.ResourceID == new Guid(idStr));
+          
+          // only allow removing if group is not still in use
+          DA.ResourceResourceGroup rrgEntity = cmdc.GetTable<DA.ResourceResourceGroup>()
+                              .FirstOrDefault(x => x.ResourceGroupID == new Guid(idStr));
+          if ((Entity != null) && (rrgEntity == null)) {
+            cmdc.GetTable<DA.Resource>().DeleteOnSubmit(Entity);
+            cmdc.SubmitChanges();
+            return true;
+          }
+        }
+      } return false;
+    }
+
+    public bool IsIDString (string idString){
+      try{
+        Guid gid = new Guid(idString);
+        return true;
+      }
+      catch (Exception e) {return false;}
+    }
+
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.DataAccess/Properties/Settings.Designer.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.DataAccess/Properties/Settings.Designer.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.DataAccess/Properties/Settings.Designer.cs	(revision 4695)
@@ -0,0 +1,37 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.1
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HeuristicLab.Services.Authentication.DataAccess.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+        
+        [global::System.Configuration.ApplicationScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
+        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=.\\SQLEXPRESS;Initial Catalog=HeuristicLab.ClientManagment;Integrated " +
+            "Security=True")]
+        public string ClientManagementConnectionString {
+            get {
+                return ((string)(this["ClientManagementConnectionString"]));
+            }
+        }
+    }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.DataAccess/Properties/Settings.settings
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.DataAccess/Properties/Settings.settings	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.DataAccess/Properties/Settings.settings	(revision 4695)
@@ -0,0 +1,14 @@
+﻿<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="HeuristicLab.Services.Authentication.DataAccess.Properties" GeneratedClassName="Settings">
+  <Profiles />
+  <Settings>
+    <Setting Name="ClientManagementConnectionString" Type="(Connection string)" Scope="Application">
+      <DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
+&lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
+  &lt;ConnectionString&gt;Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.ClientManagment;Integrated Security=True&lt;/ConnectionString&gt;
+  &lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
+&lt;/SerializableConnectionString&gt;</DesignTimeValue>
+      <Value Profile="(Default)">Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.ClientManagment;Integrated Security=True</Value>
+    </Setting>
+  </Settings>
+</SettingsFile>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.DataAccess/app.config
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.DataAccess/app.config	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.DataAccess/app.config	(revision 4695)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <configSections>
+    </configSections>
+    <connectionStrings>
+        <add name="HeuristicLab.Services.Authentication.DataAccess.Properties.Settings.ClientManagementConnectionString"
+            connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.ClientManagment;Integrated Security=True"
+            providerName="System.Data.SqlClient" />
+    </connectionStrings>
+</configuration>
Index: anches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.DataTransfer/Class1.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/HeuristicLab.Services.Authentication.DataTransfer/Class1.cs	(revision 4694)
+++ 	(revision )
@@ -1,12 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace HeuristicLab.Services.Authentication.DataTransfer
-{
-    public class Class1
-    {
-              
-    }
-}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/ClientTabMethods.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/ClientTabMethods.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/ClientTabMethods.cs	(revision 4695)
@@ -0,0 +1,9 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace UserInterface {
+  class ClientTabMethods {
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/GroupTabMethods.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/GroupTabMethods.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/GroupTabMethods.cs	(revision 4695)
@@ -0,0 +1,17 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Collections;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using AM = HeuristicLab.Services.Authentication.AdminMethods;
+using F1 = HeuristicLab.Services.Authentication.UserInterface.Form1;
+
+namespace UserInterface {
+  public class GroupTabMethods {    
+
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/HeuristicLab.Services.Authentication.UserInterface.csproj
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/HeuristicLab.Services.Authentication.UserInterface.csproj	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/HeuristicLab.Services.Authentication.UserInterface.csproj	(revision 4695)
@@ -0,0 +1,99 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{345CD2B9-F5A9-498C-A50C-79D41E449351}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>UserInterface</RootNamespace>
+    <AssemblyName>UserInterface</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="ClientTabMethods.cs" />
+    <Compile Include="GroupTabMethods.cs" />
+    <Compile Include="UserInterface.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="UserInterface.Designer.cs">
+      <DependentUpon>UserInterface.cs</DependentUpon>
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <EmbeddedResource Include="UserInterface.resx">
+      <DependentUpon>UserInterface.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <WCFMetadata Include="Service References\" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\HeuristicLab.Services.Authentication.AdminMethods\HeuristicLab.Services.Authentication.AdminMethods.csproj">
+      <Project>{2DC20235-6A91-4ABC-8E3E-660B43EAD23B}</Project>
+      <Name>HeuristicLab.Services.Authentication.AdminMethods</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Program.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Program.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Program.cs	(revision 4695)
@@ -0,0 +1,21 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
+
+
+namespace HeuristicLab.Services.Authentication.UserInterface {
+  static class Program {
+    /// <summary>
+    /// The main entry point for the application.
+    /// </summary>
+    [STAThread]
+    static void Main() {
+      Application.EnableVisualStyles();
+      Application.SetCompatibleTextRenderingDefault(false);
+      //Form1 f1 = new Form1();
+      Application.Run(new Form1());
+    }
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/AssemblyInfo.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/AssemblyInfo.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/AssemblyInfo.cs	(revision 4695)
@@ -0,0 +1,36 @@
+﻿using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("UserInterface")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("UserInterface")]
+[assembly: AssemblyCopyright("Copyright ©  2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("c91f27d1-7fa0-416c-b716-74afe753103e")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Resources.Designer.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Resources.Designer.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Resources.Designer.cs	(revision 4695)
@@ -0,0 +1,62 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.1
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace UserInterface.Properties {
+
+
+  /// <summary>
+  ///   A strongly-typed resource class, for looking up localized strings, etc.
+  /// </summary>
+  // This class was auto-generated by the StronglyTypedResourceBuilder
+  // class via a tool like ResGen or Visual Studio.
+  // To add or remove a member, edit your .ResX file then rerun ResGen
+  // with the /str option, or rebuild your VS project.
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+  internal class Resources {
+
+    private static global::System.Resources.ResourceManager resourceMan;
+
+    private static global::System.Globalization.CultureInfo resourceCulture;
+
+    [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+    internal Resources() {
+    }
+
+    /// <summary>
+    ///   Returns the cached ResourceManager instance used by this class.
+    /// </summary>
+    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+    internal static global::System.Resources.ResourceManager ResourceManager {
+      get {
+        if ((resourceMan == null)) {
+          global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UserInterface.Properties.Resources", typeof(Resources).Assembly);
+          resourceMan = temp;
+        }
+        return resourceMan;
+      }
+    }
+
+    /// <summary>
+    ///   Overrides the current thread's CurrentUICulture property for all
+    ///   resource lookups using this strongly typed resource class.
+    /// </summary>
+    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+    internal static global::System.Globalization.CultureInfo Culture {
+      get {
+        return resourceCulture;
+      }
+      set {
+        resourceCulture = value;
+      }
+    }
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Resources.resx
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Resources.resx	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Resources.resx	(revision 4695)
@@ -0,0 +1,117 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Settings.Designer.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Settings.Designer.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Settings.Designer.cs	(revision 4695)
@@ -0,0 +1,26 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.1
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace UserInterface.Properties {
+
+
+  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+  internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+    private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+    public static Settings Default {
+      get {
+        return defaultInstance;
+      }
+    }
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Settings.settings
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Settings.settings	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/Properties/Settings.settings	(revision 4695)
@@ -0,0 +1,7 @@
+﻿<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/UserInterface.Designer.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/UserInterface.Designer.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/UserInterface.Designer.cs	(revision 4695)
@@ -0,0 +1,968 @@
+﻿namespace HeuristicLab.Services.Authentication.UserInterface {
+  partial class Form1 {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.tabClients = new System.Windows.Forms.TabControl();
+      this.tabClient = new System.Windows.Forms.TabPage();
+      this.label14 = new System.Windows.Forms.Label();
+      this.label12 = new System.Windows.Forms.Label();
+      this.tbResourceGroupID = new System.Windows.Forms.TextBox();
+      this.tbResourceGroupName = new System.Windows.Forms.TextBox();
+      this.label11 = new System.Windows.Forms.Label();
+      this.label10 = new System.Windows.Forms.Label();
+      this.label9 = new System.Windows.Forms.Label();
+      this.label8 = new System.Windows.Forms.Label();
+      this.label7 = new System.Windows.Forms.Label();
+      this.label6 = new System.Windows.Forms.Label();
+      this.label5 = new System.Windows.Forms.Label();
+      this.label4 = new System.Windows.Forms.Label();
+      this.label3 = new System.Windows.Forms.Label();
+      this.label2 = new System.Windows.Forms.Label();
+      this.label1 = new System.Windows.Forms.Label();
+      this.ResourceList = new System.Windows.Forms.DataGridView();
+      this.btGenerateClient = new System.Windows.Forms.Button();
+      this.btClear = new System.Windows.Forms.Button();
+      this.btClientExit = new System.Windows.Forms.Button();
+      this.btCreateClient = new System.Windows.Forms.Button();
+      this.btClientUpdate = new System.Windows.Forms.Button();
+      this.btDeleteClient = new System.Windows.Forms.Button();
+      this.btSearchClient = new System.Windows.Forms.Button();
+      this.tbResourceID = new System.Windows.Forms.TextBox();
+      this.tbOperatingSystem = new System.Windows.Forms.TextBox();
+      this.tbMemorySize = new System.Windows.Forms.TextBox();
+      this.tbIPAdress = new System.Windows.Forms.TextBox();
+      this.tbNumberOfThreads = new System.Windows.Forms.TextBox();
+      this.tbNumberOfProcessors = new System.Windows.Forms.TextBox();
+      this.tbProcessorType = new System.Windows.Forms.TextBox();
+      this.tbDescription = new System.Windows.Forms.TextBox();
+      this.tbResourceType = new System.Windows.Forms.TextBox();
+      this.tbName = new System.Windows.Forms.TextBox();
+      this.cbResourceGroup = new System.Windows.Forms.ComboBox();
+      this.tabGroup = new System.Windows.Forms.TabPage();
+      this.label15 = new System.Windows.Forms.Label();
+      this.label16 = new System.Windows.Forms.Label();
+      this.tbResourceGroupGroupID = new System.Windows.Forms.TextBox();
+      this.tbResourceGroupGroupName = new System.Windows.Forms.TextBox();
+      this.label17 = new System.Windows.Forms.Label();
+      this.cbResourceGroupGroup = new System.Windows.Forms.ComboBox();
+      this.label19 = new System.Windows.Forms.Label();
+      this.label22 = new System.Windows.Forms.Label();
+      this.label23 = new System.Windows.Forms.Label();
+      this.label24 = new System.Windows.Forms.Label();
+      this.btClearRG = new System.Windows.Forms.Button();
+      this.btExitRG = new System.Windows.Forms.Button();
+      this.btCreateRG = new System.Windows.Forms.Button();
+      this.btUpdateRG = new System.Windows.Forms.Button();
+      this.btDeleteRG = new System.Windows.Forms.Button();
+      this.btSearchRG = new System.Windows.Forms.Button();
+      this.tbResourceIDGroup = new System.Windows.Forms.TextBox();
+      this.tbDescriptionGroup = new System.Windows.Forms.TextBox();
+      this.tbResourceGroupType = new System.Windows.Forms.TextBox();
+      this.tbNameGroup = new System.Windows.Forms.TextBox();
+      this.ResourceGroupList = new System.Windows.Forms.DataGridView();
+      this.dataGridView1 = new System.Windows.Forms.DataGridView();
+      this.comboBox1 = new System.Windows.Forms.ComboBox();
+      this.textBox10 = new System.Windows.Forms.TextBox();
+      this.textBox9 = new System.Windows.Forms.TextBox();
+      this.textBox8 = new System.Windows.Forms.TextBox();
+      this.textBox7 = new System.Windows.Forms.TextBox();
+      this.textBox6 = new System.Windows.Forms.TextBox();
+      this.textBox5 = new System.Windows.Forms.TextBox();
+      this.textBox4 = new System.Windows.Forms.TextBox();
+      this.textBox3 = new System.Windows.Forms.TextBox();
+      this.textBox2 = new System.Windows.Forms.TextBox();
+      this.textBox1 = new System.Windows.Forms.TextBox();
+      this.button7 = new System.Windows.Forms.Button();
+      this.button8 = new System.Windows.Forms.Button();
+      this.button6 = new System.Windows.Forms.Button();
+      this.button5 = new System.Windows.Forms.Button();
+      this.button4 = new System.Windows.Forms.Button();
+      this.button3 = new System.Windows.Forms.Button();
+      this.button2 = new System.Windows.Forms.Button();
+      this.button1 = new System.Windows.Forms.Button();
+      this.tabClients.SuspendLayout();
+      this.tabClient.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.ResourceList)).BeginInit();
+      this.tabGroup.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.ResourceGroupList)).BeginInit();
+      ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // tabClients
+      // 
+      this.tabClients.Controls.Add(this.tabClient);
+      this.tabClients.Controls.Add(this.tabGroup);
+      this.tabClients.Location = new System.Drawing.Point(12, 12);
+      this.tabClients.Name = "tabClients";
+      this.tabClients.SelectedIndex = 0;
+      this.tabClients.Size = new System.Drawing.Size(897, 519);
+      this.tabClients.TabIndex = 0;
+      this.tabClients.Tag = "";
+      // 
+      // tabClient
+      // 
+      this.tabClient.Controls.Add(this.label14);
+      this.tabClient.Controls.Add(this.label12);
+      this.tabClient.Controls.Add(this.tbResourceGroupID);
+      this.tabClient.Controls.Add(this.tbResourceGroupName);
+      this.tabClient.Controls.Add(this.label11);
+      this.tabClient.Controls.Add(this.label10);
+      this.tabClient.Controls.Add(this.label9);
+      this.tabClient.Controls.Add(this.label8);
+      this.tabClient.Controls.Add(this.label7);
+      this.tabClient.Controls.Add(this.label6);
+      this.tabClient.Controls.Add(this.label5);
+      this.tabClient.Controls.Add(this.label4);
+      this.tabClient.Controls.Add(this.label3);
+      this.tabClient.Controls.Add(this.label2);
+      this.tabClient.Controls.Add(this.label1);
+      this.tabClient.Controls.Add(this.ResourceList);
+      this.tabClient.Controls.Add(this.btGenerateClient);
+      this.tabClient.Controls.Add(this.btClear);
+      this.tabClient.Controls.Add(this.btClientExit);
+      this.tabClient.Controls.Add(this.btCreateClient);
+      this.tabClient.Controls.Add(this.btClientUpdate);
+      this.tabClient.Controls.Add(this.btDeleteClient);
+      this.tabClient.Controls.Add(this.btSearchClient);
+      this.tabClient.Controls.Add(this.tbResourceID);
+      this.tabClient.Controls.Add(this.tbOperatingSystem);
+      this.tabClient.Controls.Add(this.tbMemorySize);
+      this.tabClient.Controls.Add(this.tbIPAdress);
+      this.tabClient.Controls.Add(this.tbNumberOfThreads);
+      this.tabClient.Controls.Add(this.tbNumberOfProcessors);
+      this.tabClient.Controls.Add(this.tbProcessorType);
+      this.tabClient.Controls.Add(this.tbDescription);
+      this.tabClient.Controls.Add(this.tbResourceType);
+      this.tabClient.Controls.Add(this.tbName);
+      this.tabClient.Controls.Add(this.cbResourceGroup);
+      this.tabClient.Location = new System.Drawing.Point(4, 22);
+      this.tabClient.Name = "tabClient";
+      this.tabClient.Padding = new System.Windows.Forms.Padding(3);
+      this.tabClient.Size = new System.Drawing.Size(889, 493);
+      this.tabClient.TabIndex = 0;
+      this.tabClient.Text = "Client";
+      this.tabClient.UseVisualStyleBackColor = true;
+      // 
+      // label14
+      // 
+      this.label14.AutoSize = true;
+      this.label14.Location = new System.Drawing.Point(62, 282);
+      this.label14.Name = "label14";
+      this.label14.Size = new System.Drawing.Size(69, 13);
+      this.label14.TabIndex = 110;
+      this.label14.Text = "Select Group";
+      // 
+      // label12
+      // 
+      this.label12.AutoSize = true;
+      this.label12.Location = new System.Drawing.Point(62, 332);
+      this.label12.Name = "label12";
+      this.label12.Size = new System.Drawing.Size(47, 13);
+      this.label12.TabIndex = 109;
+      this.label12.Text = "GroupID";
+      // 
+      // tbResourceGroupID
+      // 
+      this.tbResourceGroupID.Location = new System.Drawing.Point(217, 329);
+      this.tbResourceGroupID.Name = "tbResourceGroupID";
+      this.tbResourceGroupID.ReadOnly = true;
+      this.tbResourceGroupID.Size = new System.Drawing.Size(430, 20);
+      this.tbResourceGroupID.TabIndex = 108;
+      // 
+      // tbResourceGroupName
+      // 
+      this.tbResourceGroupName.Location = new System.Drawing.Point(217, 306);
+      this.tbResourceGroupName.Name = "tbResourceGroupName";
+      this.tbResourceGroupName.ReadOnly = true;
+      this.tbResourceGroupName.Size = new System.Drawing.Size(431, 20);
+      this.tbResourceGroupName.TabIndex = 107;
+      // 
+      // label11
+      // 
+      this.label11.AutoSize = true;
+      this.label11.Location = new System.Drawing.Point(60, 251);
+      this.label11.Name = "label11";
+      this.label11.Size = new System.Drawing.Size(87, 13);
+      this.label11.TabIndex = 106;
+      this.label11.Text = "OperatingSystem";
+      // 
+      // label10
+      // 
+      this.label10.AutoSize = true;
+      this.label10.Location = new System.Drawing.Point(60, 225);
+      this.label10.Name = "label10";
+      this.label10.Size = new System.Drawing.Size(64, 13);
+      this.label10.TabIndex = 105;
+      this.label10.Text = "MemorySize";
+      // 
+      // label9
+      // 
+      this.label9.AutoSize = true;
+      this.label9.Location = new System.Drawing.Point(60, 147);
+      this.label9.Name = "label9";
+      this.label9.Size = new System.Drawing.Size(107, 13);
+      this.label9.TabIndex = 104;
+      this.label9.Text = "NumberOfProcessors";
+      // 
+      // label8
+      // 
+      this.label8.AutoSize = true;
+      this.label8.Location = new System.Drawing.Point(60, 176);
+      this.label8.Name = "label8";
+      this.label8.Size = new System.Drawing.Size(94, 13);
+      this.label8.TabIndex = 103;
+      this.label8.Text = "NumberOfThreads";
+      // 
+      // label7
+      // 
+      this.label7.AutoSize = true;
+      this.label7.Location = new System.Drawing.Point(60, 202);
+      this.label7.Name = "label7";
+      this.label7.Size = new System.Drawing.Size(49, 13);
+      this.label7.TabIndex = 102;
+      this.label7.Text = "IPAdress";
+      // 
+      // label6
+      // 
+      this.label6.AutoSize = true;
+      this.label6.Location = new System.Drawing.Point(61, 95);
+      this.label6.Name = "label6";
+      this.label6.Size = new System.Drawing.Size(71, 13);
+      this.label6.TabIndex = 101;
+      this.label6.Text = "ResourceTyp";
+      // 
+      // label5
+      // 
+      this.label5.AutoSize = true;
+      this.label5.Location = new System.Drawing.Point(61, 306);
+      this.label5.Name = "label5";
+      this.label5.Size = new System.Drawing.Size(64, 13);
+      this.label5.TabIndex = 100;
+      this.label5.Text = "GroupName";
+      // 
+      // label4
+      // 
+      this.label4.AutoSize = true;
+      this.label4.Location = new System.Drawing.Point(60, 121);
+      this.label4.Name = "label4";
+      this.label4.Size = new System.Drawing.Size(77, 13);
+      this.label4.TabIndex = 99;
+      this.label4.Text = "ProcesssorTyp";
+      // 
+      // label3
+      // 
+      this.label3.AutoSize = true;
+      this.label3.Location = new System.Drawing.Point(61, 46);
+      this.label3.Name = "label3";
+      this.label3.Size = new System.Drawing.Size(81, 13);
+      this.label3.TabIndex = 98;
+      this.label3.Text = "ResourceName";
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Location = new System.Drawing.Point(61, 69);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(60, 13);
+      this.label2.TabIndex = 97;
+      this.label2.Text = "Description";
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(61, 18);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(64, 13);
+      this.label1.TabIndex = 96;
+      this.label1.Text = "ResourceID";
+      // 
+      // ResourceList
+      // 
+      this.ResourceList.AllowUserToAddRows = false;
+      this.ResourceList.AllowUserToDeleteRows = false;
+      this.ResourceList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+      this.ResourceList.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
+      this.ResourceList.Location = new System.Drawing.Point(63, 361);
+      this.ResourceList.MaximumSize = new System.Drawing.Size(890, 150);
+      this.ResourceList.MinimumSize = new System.Drawing.Size(10, 10);
+      this.ResourceList.MultiSelect = false;
+      this.ResourceList.Name = "ResourceList";
+      this.ResourceList.ReadOnly = true;
+      this.ResourceList.Size = new System.Drawing.Size(790, 123);
+      this.ResourceList.TabIndex = 95;
+      this.ResourceList.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.ResourceList_CellClick);
+      // 
+      // btGenerateClient
+      // 
+      this.btGenerateClient.Location = new System.Drawing.Point(735, 250);
+      this.btGenerateClient.Name = "btGenerateClient";
+      this.btGenerateClient.Size = new System.Drawing.Size(118, 39);
+      this.btGenerateClient.TabIndex = 91;
+      this.btGenerateClient.Text = "GenerateClient";
+      this.btGenerateClient.UseVisualStyleBackColor = true;
+      this.btGenerateClient.Click += new System.EventHandler(this.btGenerate_Click);
+      // 
+      // btClear
+      // 
+      this.btClear.Location = new System.Drawing.Point(735, 201);
+      this.btClear.Name = "btClear";
+      this.btClear.Size = new System.Drawing.Size(118, 39);
+      this.btClear.TabIndex = 90;
+      this.btClear.Text = "Clear";
+      this.btClear.UseVisualStyleBackColor = true;
+      this.btClear.Click += new System.EventHandler(this.btClear_Click);
+      // 
+      // btClientExit
+      // 
+      this.btClientExit.Location = new System.Drawing.Point(735, 296);
+      this.btClientExit.Name = "btClientExit";
+      this.btClientExit.Size = new System.Drawing.Size(118, 39);
+      this.btClientExit.TabIndex = 88;
+      this.btClientExit.Text = "Exit";
+      this.btClientExit.UseVisualStyleBackColor = true;
+      this.btClientExit.Click += new System.EventHandler(this.btClientExit_Click);
+      // 
+      // btCreateClient
+      // 
+      this.btCreateClient.Location = new System.Drawing.Point(735, 65);
+      this.btCreateClient.Name = "btCreateClient";
+      this.btCreateClient.Size = new System.Drawing.Size(118, 39);
+      this.btCreateClient.TabIndex = 87;
+      this.btCreateClient.Text = "Create";
+      this.btCreateClient.UseVisualStyleBackColor = true;
+      this.btCreateClient.Click += new System.EventHandler(this.btCreateClient_Click);
+      // 
+      // btClientUpdate
+      // 
+      this.btClientUpdate.Location = new System.Drawing.Point(735, 111);
+      this.btClientUpdate.Name = "btClientUpdate";
+      this.btClientUpdate.Size = new System.Drawing.Size(118, 39);
+      this.btClientUpdate.TabIndex = 86;
+      this.btClientUpdate.Text = "Update";
+      this.btClientUpdate.UseVisualStyleBackColor = true;
+      this.btClientUpdate.Click += new System.EventHandler(this.btClientUpdate_Click);
+      // 
+      // btDeleteClient
+      // 
+      this.btDeleteClient.Location = new System.Drawing.Point(735, 156);
+      this.btDeleteClient.Name = "btDeleteClient";
+      this.btDeleteClient.Size = new System.Drawing.Size(118, 39);
+      this.btDeleteClient.TabIndex = 85;
+      this.btDeleteClient.Text = "Delete";
+      this.btDeleteClient.UseVisualStyleBackColor = true;
+      this.btDeleteClient.Click += new System.EventHandler(this.btDeleteClient_Click);
+      // 
+      // btSearchClient
+      // 
+      this.btSearchClient.Location = new System.Drawing.Point(735, 20);
+      this.btSearchClient.Name = "btSearchClient";
+      this.btSearchClient.Size = new System.Drawing.Size(118, 39);
+      this.btSearchClient.TabIndex = 84;
+      this.btSearchClient.Text = "Search";
+      this.btSearchClient.UseVisualStyleBackColor = true;
+      this.btSearchClient.Click += new System.EventHandler(this.btSearchClient_Click);
+      // 
+      // tbResourceID
+      // 
+      this.tbResourceID.Location = new System.Drawing.Point(216, 17);
+      this.tbResourceID.Name = "tbResourceID";
+      this.tbResourceID.ReadOnly = true;
+      this.tbResourceID.Size = new System.Drawing.Size(431, 20);
+      this.tbResourceID.TabIndex = 53;
+      // 
+      // tbOperatingSystem
+      // 
+      this.tbOperatingSystem.Location = new System.Drawing.Point(217, 251);
+      this.tbOperatingSystem.Name = "tbOperatingSystem";
+      this.tbOperatingSystem.Size = new System.Drawing.Size(431, 20);
+      this.tbOperatingSystem.TabIndex = 43;
+      // 
+      // tbMemorySize
+      // 
+      this.tbMemorySize.Location = new System.Drawing.Point(217, 225);
+      this.tbMemorySize.Name = "tbMemorySize";
+      this.tbMemorySize.Size = new System.Drawing.Size(431, 20);
+      this.tbMemorySize.TabIndex = 41;
+      // 
+      // tbIPAdress
+      // 
+      this.tbIPAdress.Location = new System.Drawing.Point(217, 199);
+      this.tbIPAdress.Name = "tbIPAdress";
+      this.tbIPAdress.Size = new System.Drawing.Size(431, 20);
+      this.tbIPAdress.TabIndex = 39;
+      // 
+      // tbNumberOfThreads
+      // 
+      this.tbNumberOfThreads.Location = new System.Drawing.Point(217, 173);
+      this.tbNumberOfThreads.Name = "tbNumberOfThreads";
+      this.tbNumberOfThreads.Size = new System.Drawing.Size(431, 20);
+      this.tbNumberOfThreads.TabIndex = 37;
+      // 
+      // tbNumberOfProcessors
+      // 
+      this.tbNumberOfProcessors.Location = new System.Drawing.Point(217, 147);
+      this.tbNumberOfProcessors.Name = "tbNumberOfProcessors";
+      this.tbNumberOfProcessors.Size = new System.Drawing.Size(431, 20);
+      this.tbNumberOfProcessors.TabIndex = 35;
+      // 
+      // tbProcessorType
+      // 
+      this.tbProcessorType.Location = new System.Drawing.Point(217, 121);
+      this.tbProcessorType.Name = "tbProcessorType";
+      this.tbProcessorType.Size = new System.Drawing.Size(431, 20);
+      this.tbProcessorType.TabIndex = 33;
+      // 
+      // tbDescription
+      // 
+      this.tbDescription.Location = new System.Drawing.Point(217, 69);
+      this.tbDescription.Name = "tbDescription";
+      this.tbDescription.Size = new System.Drawing.Size(431, 20);
+      this.tbDescription.TabIndex = 31;
+      // 
+      // tbResourceType
+      // 
+      this.tbResourceType.Location = new System.Drawing.Point(217, 95);
+      this.tbResourceType.Name = "tbResourceType";
+      this.tbResourceType.ReadOnly = true;
+      this.tbResourceType.Size = new System.Drawing.Size(431, 20);
+      this.tbResourceType.TabIndex = 29;
+      // 
+      // tbName
+      // 
+      this.tbName.Location = new System.Drawing.Point(217, 43);
+      this.tbName.Name = "tbName";
+      this.tbName.Size = new System.Drawing.Size(431, 20);
+      this.tbName.TabIndex = 27;
+      // 
+      // cbResourceGroup
+      // 
+      this.cbResourceGroup.CausesValidation = false;
+      this.cbResourceGroup.FormattingEnabled = true;
+      this.cbResourceGroup.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+      this.cbResourceGroup.Location = new System.Drawing.Point(217, 279);
+      this.cbResourceGroup.MaxDropDownItems = 50;
+      this.cbResourceGroup.Name = "cbResourceGroup";
+      this.cbResourceGroup.Size = new System.Drawing.Size(430, 21);
+      this.cbResourceGroup.Sorted = true;
+      this.cbResourceGroup.TabIndex = 51;
+      this.cbResourceGroup.SelectedIndexChanged += new System.EventHandler(this.cbResourceGroup_SelectedIndexChanged);
+      this.cbResourceGroup.Click += new System.EventHandler(this.cbResourceGroup_Click);
+      // 
+      // tabGroup
+      // 
+      this.tabGroup.Controls.Add(this.label15);
+      this.tabGroup.Controls.Add(this.label16);
+      this.tabGroup.Controls.Add(this.tbResourceGroupGroupID);
+      this.tabGroup.Controls.Add(this.tbResourceGroupGroupName);
+      this.tabGroup.Controls.Add(this.label17);
+      this.tabGroup.Controls.Add(this.cbResourceGroupGroup);
+      this.tabGroup.Controls.Add(this.label19);
+      this.tabGroup.Controls.Add(this.label22);
+      this.tabGroup.Controls.Add(this.label23);
+      this.tabGroup.Controls.Add(this.label24);
+      this.tabGroup.Controls.Add(this.btClearRG);
+      this.tabGroup.Controls.Add(this.btExitRG);
+      this.tabGroup.Controls.Add(this.btCreateRG);
+      this.tabGroup.Controls.Add(this.btUpdateRG);
+      this.tabGroup.Controls.Add(this.btDeleteRG);
+      this.tabGroup.Controls.Add(this.btSearchRG);
+      this.tabGroup.Controls.Add(this.tbResourceIDGroup);
+      this.tabGroup.Controls.Add(this.tbDescriptionGroup);
+      this.tabGroup.Controls.Add(this.tbResourceGroupType);
+      this.tabGroup.Controls.Add(this.tbNameGroup);
+      this.tabGroup.Controls.Add(this.ResourceGroupList);
+      this.tabGroup.Location = new System.Drawing.Point(4, 22);
+      this.tabGroup.Name = "tabGroup";
+      this.tabGroup.Padding = new System.Windows.Forms.Padding(3);
+      this.tabGroup.Size = new System.Drawing.Size(889, 493);
+      this.tabGroup.TabIndex = 1;
+      this.tabGroup.Text = "Group";
+      this.tabGroup.UseVisualStyleBackColor = true;
+      // 
+      // label15
+      // 
+      this.label15.AutoSize = true;
+      this.label15.Location = new System.Drawing.Point(87, 267);
+      this.label15.Name = "label15";
+      this.label15.Size = new System.Drawing.Size(69, 13);
+      this.label15.TabIndex = 132;
+      this.label15.Text = "Select Group";
+      // 
+      // label16
+      // 
+      this.label16.AutoSize = true;
+      this.label16.Location = new System.Drawing.Point(87, 317);
+      this.label16.Name = "label16";
+      this.label16.Size = new System.Drawing.Size(47, 13);
+      this.label16.TabIndex = 131;
+      this.label16.Text = "GroupID";
+      // 
+      // tbResourceGroupGroupID
+      // 
+      this.tbResourceGroupGroupID.Location = new System.Drawing.Point(216, 317);
+      this.tbResourceGroupGroupID.Name = "tbResourceGroupGroupID";
+      this.tbResourceGroupGroupID.ReadOnly = true;
+      this.tbResourceGroupGroupID.Size = new System.Drawing.Size(430, 20);
+      this.tbResourceGroupGroupID.TabIndex = 130;
+      // 
+      // tbResourceGroupGroupName
+      // 
+      this.tbResourceGroupGroupName.Location = new System.Drawing.Point(216, 294);
+      this.tbResourceGroupGroupName.Name = "tbResourceGroupGroupName";
+      this.tbResourceGroupGroupName.ReadOnly = true;
+      this.tbResourceGroupGroupName.Size = new System.Drawing.Size(431, 20);
+      this.tbResourceGroupGroupName.TabIndex = 129;
+      // 
+      // label17
+      // 
+      this.label17.AutoSize = true;
+      this.label17.Location = new System.Drawing.Point(87, 294);
+      this.label17.Name = "label17";
+      this.label17.Size = new System.Drawing.Size(64, 13);
+      this.label17.TabIndex = 128;
+      this.label17.Text = "GroupName";
+      // 
+      // cbResourceGroupGroup
+      // 
+      this.cbResourceGroupGroup.CausesValidation = false;
+      this.cbResourceGroupGroup.FormattingEnabled = true;
+      this.cbResourceGroupGroup.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+      this.cbResourceGroupGroup.Location = new System.Drawing.Point(216, 267);
+      this.cbResourceGroupGroup.MaxDropDownItems = 50;
+      this.cbResourceGroupGroup.Name = "cbResourceGroupGroup";
+      this.cbResourceGroupGroup.Size = new System.Drawing.Size(430, 21);
+      this.cbResourceGroupGroup.Sorted = true;
+      this.cbResourceGroupGroup.TabIndex = 127;
+      this.cbResourceGroupGroup.SelectedIndexChanged += new System.EventHandler(this.cbResourceGroupGroup_SelectedIndexChanged);
+      this.cbResourceGroupGroup.Click += new System.EventHandler(this.cbResourceGroupGroup_Click);
+      // 
+      // label19
+      // 
+      this.label19.AutoSize = true;
+      this.label19.Location = new System.Drawing.Point(87, 80);
+      this.label19.Name = "label19";
+      this.label19.Size = new System.Drawing.Size(71, 13);
+      this.label19.TabIndex = 120;
+      this.label19.Text = "ResourceTyp";
+      // 
+      // label22
+      // 
+      this.label22.AutoSize = true;
+      this.label22.Location = new System.Drawing.Point(87, 31);
+      this.label22.Name = "label22";
+      this.label22.Size = new System.Drawing.Size(81, 13);
+      this.label22.TabIndex = 117;
+      this.label22.Text = "ResourceName";
+      // 
+      // label23
+      // 
+      this.label23.AutoSize = true;
+      this.label23.Location = new System.Drawing.Point(87, 54);
+      this.label23.Name = "label23";
+      this.label23.Size = new System.Drawing.Size(60, 13);
+      this.label23.TabIndex = 116;
+      this.label23.Text = "Description";
+      // 
+      // label24
+      // 
+      this.label24.AutoSize = true;
+      this.label24.Location = new System.Drawing.Point(87, 3);
+      this.label24.Name = "label24";
+      this.label24.Size = new System.Drawing.Size(64, 13);
+      this.label24.TabIndex = 115;
+      this.label24.Text = "ResourceID";
+      // 
+      // btClearRG
+      // 
+      this.btClearRG.Location = new System.Drawing.Point(736, 200);
+      this.btClearRG.Name = "btClearRG";
+      this.btClearRG.Size = new System.Drawing.Size(118, 39);
+      this.btClearRG.TabIndex = 112;
+      this.btClearRG.Text = "Clear";
+      this.btClearRG.UseVisualStyleBackColor = true;
+      this.btClearRG.Click += new System.EventHandler(this.btClearRG_Click);
+      // 
+      // btExitRG
+      // 
+      this.btExitRG.Location = new System.Drawing.Point(736, 295);
+      this.btExitRG.Name = "btExitRG";
+      this.btExitRG.Size = new System.Drawing.Size(118, 39);
+      this.btExitRG.TabIndex = 111;
+      this.btExitRG.Text = "Exit";
+      this.btExitRG.UseVisualStyleBackColor = true;
+      this.btExitRG.Click += new System.EventHandler(this.btExitRG_Click);
+      // 
+      // btCreateRG
+      // 
+      this.btCreateRG.Location = new System.Drawing.Point(736, 64);
+      this.btCreateRG.Name = "btCreateRG";
+      this.btCreateRG.Size = new System.Drawing.Size(118, 39);
+      this.btCreateRG.TabIndex = 110;
+      this.btCreateRG.Text = "Create";
+      this.btCreateRG.UseVisualStyleBackColor = true;
+      this.btCreateRG.Click += new System.EventHandler(this.btCreateRG_Click);
+      // 
+      // btUpdateRG
+      // 
+      this.btUpdateRG.Location = new System.Drawing.Point(736, 110);
+      this.btUpdateRG.Name = "btUpdateRG";
+      this.btUpdateRG.Size = new System.Drawing.Size(118, 39);
+      this.btUpdateRG.TabIndex = 109;
+      this.btUpdateRG.Text = "Update";
+      this.btUpdateRG.UseVisualStyleBackColor = true;
+      this.btUpdateRG.Click += new System.EventHandler(this.btUpdateRG_Click);
+      // 
+      // btDeleteRG
+      // 
+      this.btDeleteRG.Location = new System.Drawing.Point(736, 155);
+      this.btDeleteRG.Name = "btDeleteRG";
+      this.btDeleteRG.Size = new System.Drawing.Size(118, 39);
+      this.btDeleteRG.TabIndex = 108;
+      this.btDeleteRG.Text = "Delete";
+      this.btDeleteRG.UseVisualStyleBackColor = true;
+      this.btDeleteRG.Click += new System.EventHandler(this.btDeleteRG_Click);
+      // 
+      // btSearchRG
+      // 
+      this.btSearchRG.Location = new System.Drawing.Point(736, 19);
+      this.btSearchRG.Name = "btSearchRG";
+      this.btSearchRG.Size = new System.Drawing.Size(118, 39);
+      this.btSearchRG.TabIndex = 107;
+      this.btSearchRG.Text = "Search";
+      this.btSearchRG.UseVisualStyleBackColor = true;
+      this.btSearchRG.Click += new System.EventHandler(this.btSearchRG_Click);
+      // 
+      // tbResourceIDGroup
+      // 
+      this.tbResourceIDGroup.Location = new System.Drawing.Point(214, 2);
+      this.tbResourceIDGroup.Name = "tbResourceIDGroup";
+      this.tbResourceIDGroup.ReadOnly = true;
+      this.tbResourceIDGroup.Size = new System.Drawing.Size(431, 20);
+      this.tbResourceIDGroup.TabIndex = 106;
+      // 
+      // tbDescriptionGroup
+      // 
+      this.tbDescriptionGroup.Location = new System.Drawing.Point(215, 54);
+      this.tbDescriptionGroup.Name = "tbDescriptionGroup";
+      this.tbDescriptionGroup.Size = new System.Drawing.Size(431, 20);
+      this.tbDescriptionGroup.TabIndex = 97;
+      // 
+      // tbResourceGroupType
+      // 
+      this.tbResourceGroupType.Enabled = false;
+      this.tbResourceGroupType.Location = new System.Drawing.Point(215, 80);
+      this.tbResourceGroupType.Name = "tbResourceGroupType";
+      this.tbResourceGroupType.ReadOnly = true;
+      this.tbResourceGroupType.Size = new System.Drawing.Size(431, 20);
+      this.tbResourceGroupType.TabIndex = 96;
+      // 
+      // tbNameGroup
+      // 
+      this.tbNameGroup.Location = new System.Drawing.Point(215, 28);
+      this.tbNameGroup.Name = "tbNameGroup";
+      this.tbNameGroup.Size = new System.Drawing.Size(431, 20);
+      this.tbNameGroup.TabIndex = 95;
+      // 
+      // ResourceGroupList
+      // 
+      this.ResourceGroupList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+      this.ResourceGroupList.Dock = System.Windows.Forms.DockStyle.Bottom;
+      this.ResourceGroupList.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
+      this.ResourceGroupList.Location = new System.Drawing.Point(3, 341);
+      this.ResourceGroupList.MultiSelect = false;
+      this.ResourceGroupList.Name = "ResourceGroupList";
+      this.ResourceGroupList.Size = new System.Drawing.Size(883, 149);
+      this.ResourceGroupList.TabIndex = 104;
+      this.ResourceGroupList.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.ResourceGroupList_CellClick);
+      // 
+      // dataGridView1
+      // 
+      this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+      this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Bottom;
+      this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
+      this.dataGridView1.Location = new System.Drawing.Point(3, 236);
+      this.dataGridView1.MultiSelect = false;
+      this.dataGridView1.Name = "dataGridView1";
+      this.dataGridView1.Size = new System.Drawing.Size(607, 149);
+      this.dataGridView1.TabIndex = 45;
+      // 
+      // comboBox1
+      // 
+      this.comboBox1.CausesValidation = false;
+      this.comboBox1.FormattingEnabled = true;
+      this.comboBox1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+      this.comboBox1.Location = new System.Drawing.Point(219, 121);
+      this.comboBox1.MaxDropDownItems = 50;
+      this.comboBox1.Name = "comboBox1";
+      this.comboBox1.Size = new System.Drawing.Size(430, 21);
+      this.comboBox1.TabIndex = 51;
+      // 
+      // textBox10
+      // 
+      this.textBox10.Location = new System.Drawing.Point(220, 43);
+      this.textBox10.Name = "textBox10";
+      this.textBox10.Size = new System.Drawing.Size(431, 20);
+      this.textBox10.TabIndex = 27;
+      // 
+      // textBox9
+      // 
+      this.textBox9.Location = new System.Drawing.Point(220, 95);
+      this.textBox9.Name = "textBox9";
+      this.textBox9.ReadOnly = true;
+      this.textBox9.Size = new System.Drawing.Size(431, 20);
+      this.textBox9.TabIndex = 29;
+      // 
+      // textBox8
+      // 
+      this.textBox8.Location = new System.Drawing.Point(220, 69);
+      this.textBox8.Name = "textBox8";
+      this.textBox8.Size = new System.Drawing.Size(431, 20);
+      this.textBox8.TabIndex = 31;
+      // 
+      // textBox7
+      // 
+      this.textBox7.Location = new System.Drawing.Point(218, 146);
+      this.textBox7.Name = "textBox7";
+      this.textBox7.Size = new System.Drawing.Size(431, 20);
+      this.textBox7.TabIndex = 33;
+      // 
+      // textBox6
+      // 
+      this.textBox6.Location = new System.Drawing.Point(218, 172);
+      this.textBox6.Name = "textBox6";
+      this.textBox6.Size = new System.Drawing.Size(431, 20);
+      this.textBox6.TabIndex = 35;
+      // 
+      // textBox5
+      // 
+      this.textBox5.Location = new System.Drawing.Point(218, 198);
+      this.textBox5.Name = "textBox5";
+      this.textBox5.Size = new System.Drawing.Size(431, 20);
+      this.textBox5.TabIndex = 37;
+      // 
+      // textBox4
+      // 
+      this.textBox4.Location = new System.Drawing.Point(218, 224);
+      this.textBox4.Name = "textBox4";
+      this.textBox4.Size = new System.Drawing.Size(431, 20);
+      this.textBox4.TabIndex = 39;
+      // 
+      // textBox3
+      // 
+      this.textBox3.Location = new System.Drawing.Point(218, 250);
+      this.textBox3.Name = "textBox3";
+      this.textBox3.Size = new System.Drawing.Size(431, 20);
+      this.textBox3.TabIndex = 41;
+      // 
+      // textBox2
+      // 
+      this.textBox2.Location = new System.Drawing.Point(218, 276);
+      this.textBox2.Name = "textBox2";
+      this.textBox2.Size = new System.Drawing.Size(431, 20);
+      this.textBox2.TabIndex = 43;
+      // 
+      // textBox1
+      // 
+      this.textBox1.Location = new System.Drawing.Point(219, 17);
+      this.textBox1.Name = "textBox1";
+      this.textBox1.ReadOnly = true;
+      this.textBox1.Size = new System.Drawing.Size(431, 20);
+      this.textBox1.TabIndex = 53;
+      // 
+      // button7
+      // 
+      this.button7.Location = new System.Drawing.Point(735, 20);
+      this.button7.Name = "button7";
+      this.button7.Size = new System.Drawing.Size(118, 39);
+      this.button7.TabIndex = 84;
+      this.button7.Text = "Search";
+      this.button7.UseVisualStyleBackColor = true;
+      // 
+      // button8
+      // 
+      this.button8.Location = new System.Drawing.Point(735, 156);
+      this.button8.Name = "button8";
+      this.button8.Size = new System.Drawing.Size(118, 39);
+      this.button8.TabIndex = 85;
+      this.button8.Text = "Delete";
+      this.button8.UseVisualStyleBackColor = true;
+      // 
+      // button6
+      // 
+      this.button6.Location = new System.Drawing.Point(735, 111);
+      this.button6.Name = "button6";
+      this.button6.Size = new System.Drawing.Size(118, 39);
+      this.button6.TabIndex = 86;
+      this.button6.Text = "Update";
+      this.button6.UseVisualStyleBackColor = true;
+      // 
+      // button5
+      // 
+      this.button5.Location = new System.Drawing.Point(735, 65);
+      this.button5.Name = "button5";
+      this.button5.Size = new System.Drawing.Size(118, 39);
+      this.button5.TabIndex = 87;
+      this.button5.Text = "Create";
+      this.button5.UseVisualStyleBackColor = true;
+      // 
+      // button4
+      // 
+      this.button4.Location = new System.Drawing.Point(735, 296);
+      this.button4.Name = "button4";
+      this.button4.Size = new System.Drawing.Size(118, 39);
+      this.button4.TabIndex = 88;
+      this.button4.Text = "Exit";
+      this.button4.UseVisualStyleBackColor = true;
+      // 
+      // button3
+      // 
+      this.button3.Location = new System.Drawing.Point(735, 201);
+      this.button3.Name = "button3";
+      this.button3.Size = new System.Drawing.Size(118, 39);
+      this.button3.TabIndex = 90;
+      this.button3.Text = "Clear";
+      this.button3.UseVisualStyleBackColor = true;
+      // 
+      // button2
+      // 
+      this.button2.Location = new System.Drawing.Point(735, 250);
+      this.button2.Name = "button2";
+      this.button2.Size = new System.Drawing.Size(118, 39);
+      this.button2.TabIndex = 91;
+      this.button2.Text = "Generate";
+      this.button2.UseVisualStyleBackColor = true;
+      // 
+      // button1
+      // 
+      this.button1.Location = new System.Drawing.Point(219, 302);
+      this.button1.Name = "button1";
+      this.button1.Size = new System.Drawing.Size(432, 26);
+      this.button1.TabIndex = 94;
+      this.button1.Text = "ResourceGroup";
+      this.button1.UseVisualStyleBackColor = true;
+      // 
+      // Form1
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.ClientSize = new System.Drawing.Size(921, 560);
+      this.Controls.Add(this.tabClients);
+      this.Name = "Form1";
+      this.Text = "Form1";
+      this.tabClients.ResumeLayout(false);
+      this.tabClient.ResumeLayout(false);
+      this.tabClient.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.ResourceList)).EndInit();
+      this.tabGroup.ResumeLayout(false);
+      this.tabGroup.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.ResourceGroupList)).EndInit();
+      ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.TabControl tabClients;
+    private System.Windows.Forms.DataGridView dataGridView1;
+    private System.Windows.Forms.ComboBox comboBox1;
+    private System.Windows.Forms.TextBox textBox10;
+    private System.Windows.Forms.TextBox textBox9;
+    private System.Windows.Forms.TextBox textBox8;
+    private System.Windows.Forms.TextBox textBox7;
+    private System.Windows.Forms.TextBox textBox6;
+    private System.Windows.Forms.TextBox textBox5;
+    private System.Windows.Forms.TextBox textBox4;
+    private System.Windows.Forms.TextBox textBox3;
+    private System.Windows.Forms.TextBox textBox2;
+    private System.Windows.Forms.TextBox textBox1;
+    private System.Windows.Forms.Button button7;
+    private System.Windows.Forms.Button button8;
+    private System.Windows.Forms.Button button6;
+    private System.Windows.Forms.Button button5;
+    private System.Windows.Forms.Button button4;
+    private System.Windows.Forms.Button button3;
+    private System.Windows.Forms.Button button2;
+    private System.Windows.Forms.Button button1;
+    private System.Windows.Forms.TabPage tabGroup;
+    private System.Windows.Forms.Button btClearRG;
+    private System.Windows.Forms.Button btExitRG;
+    private System.Windows.Forms.Button btCreateRG;
+    private System.Windows.Forms.Button btUpdateRG;
+    private System.Windows.Forms.Button btDeleteRG;
+    private System.Windows.Forms.Button btSearchRG;
+    private System.Windows.Forms.TextBox tbResourceIDGroup;
+    private System.Windows.Forms.TextBox tbDescriptionGroup;
+    private System.Windows.Forms.TextBox tbResourceGroupType;
+    private System.Windows.Forms.TextBox tbNameGroup;
+    private System.Windows.Forms.DataGridView ResourceGroupList;
+    private System.Windows.Forms.TabPage tabClient;
+    private System.Windows.Forms.Label label6;
+    private System.Windows.Forms.Label label3;
+    private System.Windows.Forms.Label label2;
+    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.DataGridView ResourceList;
+    private System.Windows.Forms.Button btGenerateClient;
+    private System.Windows.Forms.Button btClear;
+    private System.Windows.Forms.Button btClientExit;
+    private System.Windows.Forms.Button btCreateClient;
+    private System.Windows.Forms.Button btClientUpdate;
+    private System.Windows.Forms.Button btDeleteClient;
+    private System.Windows.Forms.Button btSearchClient;
+    private System.Windows.Forms.TextBox tbResourceID;
+    private System.Windows.Forms.TextBox tbDescription;
+    private System.Windows.Forms.TextBox tbResourceType;
+    private System.Windows.Forms.TextBox tbName;
+    private System.Windows.Forms.Label label19;
+    private System.Windows.Forms.Label label22;
+    private System.Windows.Forms.Label label23;
+    private System.Windows.Forms.Label label24;
+    private System.Windows.Forms.Label label11;
+    private System.Windows.Forms.Label label10;
+    private System.Windows.Forms.Label label9;
+    private System.Windows.Forms.Label label8;
+    private System.Windows.Forms.Label label7;
+    private System.Windows.Forms.Label label4;
+    private System.Windows.Forms.TextBox tbOperatingSystem;
+    private System.Windows.Forms.TextBox tbMemorySize;
+    private System.Windows.Forms.TextBox tbIPAdress;
+    private System.Windows.Forms.TextBox tbNumberOfThreads;
+    private System.Windows.Forms.TextBox tbNumberOfProcessors;
+    private System.Windows.Forms.TextBox tbProcessorType;
+    private System.Windows.Forms.Label label14;
+    private System.Windows.Forms.Label label12;
+    private System.Windows.Forms.TextBox tbResourceGroupID;
+    private System.Windows.Forms.TextBox tbResourceGroupName;
+    private System.Windows.Forms.Label label5;
+    private System.Windows.Forms.ComboBox cbResourceGroup;
+    private System.Windows.Forms.Label label15;
+    private System.Windows.Forms.Label label16;
+    private System.Windows.Forms.TextBox tbResourceGroupGroupID;
+    private System.Windows.Forms.TextBox tbResourceGroupGroupName;
+    private System.Windows.Forms.Label label17;
+    private System.Windows.Forms.ComboBox cbResourceGroupGroup;
+
+
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/UserInterface.cs
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/UserInterface.cs	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/UserInterface.cs	(revision 4695)
@@ -0,0 +1,357 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Collections;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using AM = HeuristicLab.Services.Authentication.AdminMethods;
+
+namespace HeuristicLab.Services.Authentication.UserInterface {
+  public partial class Form1 : Form {
+    public AM.ClientAdmin clientAdmin = null;
+    public AM.GroupAdmin groupAdmin = null;
+
+    public Form1() {
+      InitializeComponent();
+      clientAdmin = new AM.ClientAdmin();
+      groupAdmin = new AM.GroupAdmin();
+    }
+
+//******************************************************************************
+//    tab client
+//******************************************************************************
+    // copies values of textboxes into hashtable
+    private Hashtable GetResourceCollection() {
+      Hashtable ht = new Hashtable();
+      ht.Add(AM.eResource.ResourceID, (string)tbResourceID.Text);
+      ht.Add(AM.eResource.Name, (string)tbName.Text);
+      ht.Add(AM.eResource.Description, (string)tbDescription.Text);
+      ht.Add(AM.eResource.ResourceType, (string)tbResourceType.Text);
+      ht.Add(AM.eResource.ProcessorType, (string)tbProcessorType.Text);
+      ht.Add(AM.eResource.NumberOfProcessors, (string)tbNumberOfProcessors.Text);
+      ht.Add(AM.eResource.NumberOfThreads, (string)tbNumberOfThreads.Text);
+      ht.Add(AM.eResource.IPAdress, (string)tbIPAdress.Text);
+      ht.Add(AM.eResource.MemorySize, (string)tbMemorySize.Text);
+      ht.Add(AM.eResource.OperatingSystem, (string)tbOperatingSystem.Text);
+      ht.Add(AM.eResource.ResourceIDGroup, (string)tbResourceGroupID.Text);
+      ht.Add(AM.eResource.ResourceNameGroup, (string)tbResourceGroupName.Text);
+      return ht;
+    }
+
+    private void FillForm(Hashtable ht) {
+      tbResourceID.Text = (string)ht[AM.eResource.ResourceID];
+      tbName.Text = (string)ht[AM.eResource.Name];
+      tbDescription.Text = (string)ht[AM.eResource.Description];
+      tbResourceID.Text = (string)ht[AM.eResource.ResourceType];
+      tbProcessorType.Text = (string)ht[AM.eResource.ProcessorType];
+      tbNumberOfProcessors.Text = (string)ht[AM.eResource.NumberOfProcessors];
+      tbNumberOfThreads.Text = (string)ht[AM.eResource.NumberOfThreads];
+      tbIPAdress.Text = (string)ht[AM.eResource.IPAdress];
+      tbMemorySize.Text = (string)ht[AM.eResource.MemorySize];
+      tbOperatingSystem.Text = (string)ht[AM.eResource.OperatingSystem];
+      tbResourceGroupID.Text = (string)ht[AM.eResource.ResourceIDGroup];
+      tbResourceGroupName.Text = (string)ht[AM.eResource.ResourceNameGroup];
+      cbResourceGroup.Text = "";
+    }
+
+    private void DeselectResourceListCells() {
+      foreach (DataGridViewCell c in this.ResourceList.SelectedCells) {
+        c.Selected = false;
+      }
+    }
+
+    private void ClearTextBoxes() {
+      Hashtable empty = new Hashtable();
+      FillForm(empty);
+    }
+
+    private void AddRowToResourceList(Hashtable ht, int r){      
+      ResourceList.Rows[r].Cells[0].Value = ht[AM.eResource.ResourceID];
+      ResourceList.Rows[r].Cells[1].Value = (string)ht[AM.eResource.Name];
+      ResourceList.Rows[r].Cells[2].Value = (string)ht[AM.eResource.ResourceType];
+      ResourceList.Rows[r].Cells[3].Value = (string)ht[AM.eResource.Description];
+      ResourceList.Rows[r].Cells[4].Value = (string)ht[AM.eResource.IPAdress];
+      ResourceList.Rows[r].Cells[5].Value = (string)ht[AM.eResource.NumberOfProcessors];
+      ResourceList.Rows[r].Cells[6].Value = (string)ht[AM.eResource.NumberOfThreads];
+      ResourceList.Rows[r].Cells[7].Value = (string)ht[AM.eResource.MemorySize];
+      ResourceList.Rows[r].Cells[8].Value = (string)ht[AM.eResource.OperatingSystem];
+      ResourceList.Rows[r].Cells[9].Value = (string)ht[AM.eResource.ResourceNameGroup];
+      ResourceList.Rows[r].Cells[10].Value = ht[AM.eResource.ResourceIDGroup];       
+    }
+
+    // insert results of search in ResourceList
+    private void FillResultList(HashSet<Hashtable> hs) {
+      ResourceList.Rows.Clear();
+      ResourceList.ColumnCount = 11;
+      int r = 0;
+      foreach (Hashtable ht in hs) {
+        ResourceList.Rows.Add();
+        AddRowToResourceList(ht, r);
+        r++;
+      }
+      ResourceList.Refresh();
+    }
+
+    private void Search() {
+      DeselectResourceListCells();
+      Hashtable ht = GetResourceCollection();
+      HashSet<Hashtable> reshs = clientAdmin.Get(ht);
+      //HashSet<Hashtable> reshs = AM.AdminMethods.GetClient(ht);
+      // empty textboxes
+      ClearTextBoxes();
+      if (reshs != null) {
+        FillResultList(reshs);
+      }
+    }
+
+    private Hashtable GenerateClient() {
+      Hashtable ht = new Hashtable();
+      ht.Add(AM.eResource.ResourceID, "");
+      ht.Add(AM.eResource.Name, "cl Name");
+      ht.Add(AM.eResource.Description, "descr");
+      ht.Add(AM.eResource.ResourceType, "");
+      ht.Add(AM.eResource.ProcessorType, "Amd");
+      ht.Add(AM.eResource.NumberOfProcessors, "4");
+      ht.Add(AM.eResource.NumberOfThreads, "2");
+      ht.Add(AM.eResource.IPAdress, "192.168.1.2");
+      ht.Add(AM.eResource.MemorySize, "4096");
+      ht.Add(AM.eResource.OperatingSystem, "WinXP");
+      //ht.Add(AM.eResource.ResourceGroup, "");
+      return ht;
+    }
+
+    private void GetGroupIDandName(ref string id, ref string name) {
+      string selectedGroup = (string)cbResourceGroup.SelectedItem;
+      char[] seperator = {'('};
+      char []trimSpaces = {' '};
+      char []trimEntPara = {')'};
+
+      string[] splitText = selectedGroup.Split(seperator);
+      name = splitText[0].TrimEnd(trimSpaces);
+      id = splitText[1].TrimEnd(trimEntPara);
+    }
+
+    // get clients selected by textboxvalues
+    private void btSearchClient_Click(object sender, EventArgs e) {      
+      Search();
+    }
+
+    // when click on a cell the values of current row will be copied into textboxes
+    private void ResourceList_CellClick(object sender, DataGridViewCellEventArgs e) {
+      int r = e.RowIndex; //selected row
+      tbResourceID.Text = ResourceList.Rows[r].Cells[0].Value.ToString();
+      tbName.Text = ResourceList.Rows[r].Cells[1].Value.ToString();
+      tbResourceType.Text = ResourceList.Rows[r].Cells[2].Value.ToString();
+      tbDescription.Text = ResourceList.Rows[r].Cells[3].Value.ToString();
+      tbIPAdress.Text = ResourceList.Rows[r].Cells[4].Value.ToString();
+      tbNumberOfProcessors.Text = ResourceList.Rows[r].Cells[5].Value.ToString();
+      tbNumberOfThreads.Text = ResourceList.Rows[r].Cells[6].Value.ToString();
+      tbMemorySize.Text = ResourceList.Rows[r].Cells[7].Value.ToString();
+      tbOperatingSystem.Text = ResourceList.Rows[r].Cells[8].Value.ToString();
+      tbResourceGroupName.Text = ResourceList.Rows[r].Cells[9].Value.ToString();
+      tbResourceGroupID.Text = ResourceList.Rows[r].Cells[10].Value.ToString();
+    }
+
+    // get ResourceGroup
+    private void cbResourceGroup_Click(object sender, EventArgs e) {
+      cbResourceGroup.Items.Clear();
+      Hashtable ht = new Hashtable(); // GetResourceGroupCollection();
+      HashSet<Hashtable> reshs = groupAdmin.Get(ht);
+      foreach (Hashtable resht in reshs) {
+        cbResourceGroup.Items.Add((string)resht[AM.eResource.Name] + "    (" + resht[AM.eResource.ResourceID] + ")");
+      }
+    }
+    
+    private void cbResourceGroup_SelectedIndexChanged(object sender, EventArgs e) {
+      string id = "";
+      string name = "";
+      GetGroupIDandName(ref id, ref name);
+      tbResourceGroupName.Text = name;
+      tbResourceGroupID.Text = id;
+    }
+
+    // clear textboxes
+    private void btClear_Click(object sender, EventArgs e) {
+      ClearTextBoxes();
+      DeselectResourceListCells();
+    }
+
+    private void btCreateClient_Click(object sender, EventArgs e) {       
+      Hashtable newClient = GetResourceCollection();
+      if (clientAdmin.Create(newClient)) {Search();}
+    }
+
+    private void btDeleteClient_Click(object sender, EventArgs e) {
+      Hashtable ht = new Hashtable();
+      ht = GetResourceCollection();
+      bool deleted = clientAdmin.Delete(ht);
+      if (deleted) {
+        Hashtable empty = new Hashtable();
+        FillForm(empty);
+        Search();
+        //int i = ResourceList.CurrentCell.RowIndex;
+        //ResourceList.Rows.RemoveAt(i);
+        //DeselectResourceListCells();
+      }
+    }
+
+    // insert default values for new client
+    private void btGenerate_Click(object sender, EventArgs e) {
+      FillForm(GenerateClient());
+    }
+
+    private void btClientExit_Click(object sender, EventArgs e) {
+      Close();
+    }
+
+    private void btClientUpdate_Click(object sender, EventArgs e) {
+      Hashtable updateClient = GetResourceCollection();
+      if (clientAdmin.Update(updateClient)) {Search();}
+    }
+
+//******************************************************************************
+//    tab group 
+//******************************************************************************
+
+    private void btClearRG_Click(object sender, EventArgs e) {
+      ClearTextBoxesGroup();
+      DeselectResourceGroupListCells();
+    }
+
+    private void btSearchRG_Click(object sender, EventArgs e) {
+      SearchGroup();
+    }
+
+    private void btCreateRG_Click(object sender, EventArgs e) {
+      Hashtable newGroup = GetResourceGroupCollection();
+      if (groupAdmin.Create(newGroup)) {SearchGroup();}
+    }
+
+    private void btUpdateRG_Click(object sender, EventArgs e) {
+      Hashtable newGroup = GetResourceGroupCollection();
+      if (groupAdmin.Update(newGroup)) {SearchGroup();}
+    }
+
+    private void btDeleteRG_Click(object sender, EventArgs e) {
+      Hashtable ht = new Hashtable();
+      ht = GetResourceGroupCollection();
+      if (groupAdmin.Delete(ht)) {
+        Hashtable empty = new Hashtable();
+        FillFormGroup(empty);
+        SearchGroup();
+        //int i = ResourceGroupList.CurrentCell.RowIndex;
+        //ResourceGroupList.Rows.RemoveAt(i);
+        //DeselectResourceGroupListCells();
+      }
+    }
+
+    private void btExitRG_Click(object sender, EventArgs e) {
+      Close();
+    }
+
+    private void GetGroupGroupIDandName(ref string id, ref string name) {
+      string selectedGroup = (string)cbResourceGroupGroup.SelectedItem;
+      char[] seperator = { ' ' };
+      string[] splitText = selectedGroup.Split(seperator);
+      name = splitText[0];
+      id = splitText[2];
+    }
+
+    private void cbResourceGroupGroup_Click(object sender, EventArgs e) {
+      cbResourceGroupGroup.Items.Clear();
+      Hashtable ht = new Hashtable(); // GetResourceGroupCollection();
+      HashSet<Hashtable> reshs = groupAdmin.Get(ht);
+      foreach (Hashtable resht in reshs) {
+        cbResourceGroupGroup.Items.Add((string)resht[AM.eResource.Name] + " : " + resht[AM.eResource.ResourceID]);
+      }
+    }
+
+    private void cbResourceGroupGroup_SelectedIndexChanged(object sender, EventArgs e) {
+      string id = "";
+      string name = "";
+      GetGroupGroupIDandName(ref id, ref name);
+      tbResourceGroupGroupName.Text = name;
+      tbResourceGroupGroupID.Text = id;
+    }
+
+    private void ResourceGroupList_CellClick(object sender, DataGridViewCellEventArgs e) {
+      int r = e.RowIndex; //selected row
+      tbResourceIDGroup.Text = ResourceGroupList.Rows[r].Cells[0].Value.ToString();
+      tbNameGroup.Text = ResourceGroupList.Rows[r].Cells[1].Value.ToString();
+      tbResourceGroupType.Text = ResourceGroupList.Rows[r].Cells[2].Value.ToString();
+      tbDescriptionGroup.Text = ResourceGroupList.Rows[r].Cells[3].Value.ToString();
+      tbResourceGroupGroupName.Text = ResourceGroupList.Rows[r].Cells[4].Value.ToString();
+      tbResourceGroupGroupID.Text = ResourceGroupList.Rows[r].Cells[5].Value.ToString();
+    }
+
+    private void FillResultGroupList(HashSet<Hashtable> hs) {
+      ResourceGroupList.Rows.Clear();
+      ResourceGroupList.ColumnCount = 6;
+      int r = 0;
+      foreach (Hashtable ht in hs) {
+        ResourceGroupList.Rows.Add();
+        AddRowToResourceGroupList(ht, r);
+        r++;
+      }
+      ResourceGroupList.Refresh();
+    }
+
+    private void AddRowToResourceGroupList(Hashtable ht, int r) {
+      ResourceGroupList.Rows[r].Cells[0].Value = ht[AM.eResource.ResourceID];
+      ResourceGroupList.Rows[r].Cells[1].Value = (string)ht[AM.eResource.Name];
+      ResourceGroupList.Rows[r].Cells[2].Value = (string)ht[AM.eResource.ResourceType];
+      ResourceGroupList.Rows[r].Cells[3].Value = (string)ht[AM.eResource.Description];
+      ResourceGroupList.Rows[r].Cells[4].Value = (string)ht[AM.eResource.ResourceNameGroup];
+      ResourceGroupList.Rows[r].Cells[5].Value = ht[AM.eResource.ResourceIDGroup];
+    }
+
+    private void SearchGroup() {
+      DeselectResourceGroupListCells();
+      Hashtable ht = GetResourceGroupCollection();
+      HashSet<Hashtable> reshs = groupAdmin.Get(ht);
+      // empty textboxes
+      ClearTextBoxesGroup();
+      if (reshs != null) {
+        FillResultGroupList(reshs);
+      }
+    }
+
+    private void DeselectResourceGroupListCells() {
+      foreach (DataGridViewCell c in this.ResourceGroupList.SelectedCells) {
+        c.Selected = false;
+      }
+    }
+
+    private void FillFormGroup(Hashtable ht) {
+      tbResourceIDGroup.Text = (string)ht[AM.eResource.ResourceID];
+      tbNameGroup.Text = (string)ht[AM.eResource.Name];
+      tbDescriptionGroup.Text = (string)ht[AM.eResource.Description];
+      tbResourceGroupType.Text = "ResourceGroup";
+      tbResourceGroupGroupID.Text = (string)ht[AM.eResource.ResourceIDGroup];
+      tbResourceGroupGroupName.Text = (string)ht[AM.eResource.ResourceNameGroup];
+      cbResourceGroupGroup.Text = "";
+    }
+
+    // copies values of textboxes into hashtable
+    private Hashtable GetResourceGroupCollection() {
+      Hashtable ht = new Hashtable();
+      ht.Add(AM.eResource.ResourceID, (string)tbResourceIDGroup.Text);
+      ht.Add(AM.eResource.Name, (string)tbNameGroup.Text);
+      ht.Add(AM.eResource.Description, (string)tbDescriptionGroup.Text);
+      ht.Add(AM.eResource.ResourceType, (string)tbResourceGroupType.Text);
+      ht.Add(AM.eResource.ResourceIDGroup, (string)tbResourceGroupGroupID.Text);
+      ht.Add(AM.eResource.ResourceNameGroup, (string)tbResourceGroupGroupName.Text);
+      return ht;
+    }
+
+    private void ClearTextBoxesGroup() {
+      Hashtable empty = new Hashtable();
+      FillFormGroup(empty);
+    }
+
+
+  }
+}
Index: /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/UserInterface.resx
===================================================================
--- /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/UserInterface.resx	(revision 4695)
+++ /branches/ClientManagement/HeuristicLab.Services.Authentication/UserInterface/UserInterface.resx	(revision 4695)
@@ -0,0 +1,120 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
